【网易官方】极客战记(codecombat)攻略-森林-捉迷藏seek-and-hide

你在食人魔营地中。食人魔斗士就在附近的帐篷里。食人魔猎人正在搜寻你。听起来不可思议?

简介

你的目标是移动到每个红 X 标记,搜寻发光石。 如果找到,在继续搜寻前,你需要藏在中央 X 标记处。

首先,完成 checkTakeHide() 函数,用于在找到发光石后隐藏在营地中央。

然后,查看在右侧 X 标记处调用 checkTakeHide(stone) 的示例代码,模仿写出在左侧 X 标记处运行的代码。

默认代码

# 收集4个发光石,用来打败食人魔斗士。
# 如果发现发光石的话,藏起来。
    if item:
        # 物品在此,拿着它。
        hero.moveXY(item.pos.x, item.pos.y)
        # 然后移动到营地中央(40, 34)
while True:
    # 移动到右上的X标记。
    hero.moveXY(68, 56)
    # 在那里搜索一块发光石。
    lightstone = hero.findNearestItem()
    # 调用checkTakeHide,并使用参数:lightstone
    checkTakeHide(lightstone)
    # 移动到左上角的标记。
    # 搜索发光石。
    # 调用checkTakeHide函数。
    # 将搜索的结果作为参数传入。

概览

你可以在函数内将函数参数作为变量使用。 当然,你也可以添加与参数无关的额外指令。 例如:

def checkAndHit(unit):
    if unit:
        hero.attack(unit)
        # 一条与unit无关的额外指令。
        hero.say("我很危险!")

还有,别忘记,同一个函数可以调用任意多次。

hero.moveXY(10, 10)
enemy = hero.findNearestEnemy()
checkAndHit(enemy)
# 下一点
hero.moveXY(70, 10)
enemy = hero.findNearestEnemy()
checkAndHit(enemy)

捉迷藏 解法

# 收集4个发光石,用来打败食人魔斗士。
# 如果发现发光石的话,藏起来。
def checkTakeHide(item):
    if item:
        # 物品在此,拿着它。
        hero.moveXY(item.pos.x, item.pos.y)
        # 然后移动到营地中央(40, 34)
        hero.moveXY(40, 34)
while True:
    # 移动到右上的X标记。
    hero.moveXY(68, 56)
    # 在那里搜索一块发光石。
    lightstone = hero.findNearestItem()
    # 调用checkTakeHide,并使用参数:lightstone
    checkTakeHide(lightstone)

 

    # 移动到左上角的标记。
    hero.moveXY(12, 56)
    # 搜索发光石。
    lightstone = hero.findNearestItem()
    # 调用checkTakeHide函数。
    # 将搜索的结果作为参数传入。
    checkTakeHide(lightstone)
 
 
本攻略发于极客战记官方教学栏目,原文地址为:
原文地址:https://www.cnblogs.com/codecombat/p/12206551.html