关卡连接:https://codecombat.163.com/play/level/back-to-back
免费试玩:https://codecombat.163.com/play
在村庄入口处巡逻,防守食人魔的进攻。
简介
使用 else 增强代码的作用!
else 类似于 if ,只是它包含的内容在 if 的条件不成立时执行。
if enemy:
# 这在有敌人的情况执行。
hero.attack(enemy)
else:
# 这在没有敌人的情况执行。
hero.say("我看不到敌人!")
默认代码
# 待在中间防守!
while True:
enemy = hero.findNearestEnemy()
if enemy:
# 亦或主动出击...
pass
else:
# 亦或回到你的阵地防守。
pass
概览
这关将教你 if/else 中的 else 部分
当你用上 else 子句时,除了条件成立时所做的事,你还指定了条件不成立时所做的事。
也就是说,如果 (if) 有敌人, 那么 (then) 攻击它,否则 (else) 移动到 X 标记处。
为了演示这个会如何执行,我们写好了 if 和 else ,你需要把 attack 和 moveXY 方法放进其中,让英雄攻击看得见的敌人,并在没有敌人的时候回到 X,保护农民。
确保你回到正确的位置,否则你将来不及同时保护两个农民了。
背靠背 解法
# 待在中间防守!
while True:
enemy = hero.findNearestEnemy()
# 亦或主动出击...
if enemy:
hero.attack(enemy)
hero.attack(enemy)
else:
# 亦或回到你的阵地防守。
hero.moveXY(40, 34)