你在食人魔营地中。食人魔斗士就在附近的帐篷里。食人魔猎人正在搜寻你。听起来不可思议?
简介
你的目标是移动到每个红 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)