(点击图片进入关卡)
定义更多函数来防御更强攻击。
简介
村庄正在面临更大一波食人魔的攻击!你需要使用函数来对敌人进行 attack 及 cleave。
def findAndAttackEnemy():
enemy = hero.findNearestEnemy()
if enemy:
hero.attack(enemy)
默认代码
# 这个函数攻击最近的敌人。
def findAndAttackEnemy():
enemy = hero.findNearestEnemy()
if enemy:
hero.attack(enemy)
# 定义一个函数来劈斩敌人(只在劈斩就绪时)
def findAndCleaveEnemy():
# 找到最近的敌人:
enemy = hero.findNearestEnemy()
# 如果敌人存在:
# 如果"cleave"就绪了:
# 是时候使用劈斩了!
pass
# 在主循环中,巡逻、劈斩和攻击。
while True:
# 移动到巡逻点,劈斩并攻击。
hero.moveXY(35, 34)
findAndCleaveEnemy()
findAndAttackEnemy()
# 移动到另一点:
# 使用findAndCleaveEnemy函数:
# 使用findAndAttackEnemy函数:
概览
这一关,你需要编写函数的定义,这样你就可以在主循环中调用它了。食人魔有可能更大规模地来袭,你需要添加一个函数使用你的 cleave 能力。
定义 findAndCleaveEnemy 函数时,记得检查:1. 敌人存在; 2. Cleave 技能准备就绪。
务必记得定义函数的方式:
def sayHello():
hero.say('Hello!')
记住,调用函数时不要加 hero,因为函数由你定义,而不是英雄。
sayHello()
hero.say('再见。')
村庄守卫 解法
# 这个函数攻击最近的敌人。
def findAndAttackEnemy():
enemy = hero.findNearestEnemy()
if enemy:
hero.attack(enemy)
def findAndAttackEnemy():
# 定义一个函数来劈斩敌人(只在劈斩就绪时)
enemy = hero.findNearestEnemy()
if enemy:
if hero.isReady('cleave'):
hero.cleave(enemy)
# 在主循环中,巡逻、劈斩和攻击。
while True:
# 移动到巡逻点,劈斩并攻击。
hero.moveXY(35, 34)
findAndCleaveEnemy()
findAndAttackEnemy()
# 移动到另一点:
hero.moveXY(60, 31)
findAndCleaveEnemy()
findAndAttackEnemy()