关卡连接:https://codecombat.163.com/play/level/thornbush-farm
免费试玩:https://codecombat.163.com/play
保卫农场,防止食人魔攻入。
简介
在三个入口附近巡逻,如果看到敌人,就在各 X 处建造一个 "fire-trap"
建造 "fire-trap" 和建造 "fence" 很类似,只是字符串不一样:
hero.buildXY("fire-trap", 20, 20)
默认代码
# 在村口巡逻。
# 当你见到食人魔,建造一个火焰陷阱"fire-trap"。
# 不要让任何农民受到伤害。
while True:
hero.moveXY(43, 50)
top = hero.findNearestEnemy()
if top:
hero.buildXY("fire-trap", 43, 50)
hero.moveXY(25, 34)
left = hero.findNearestEnemy()
# 检查左边是否存在。
# 如果敌人存在,在25, 34处建造一个陷阱。
hero.moveXY(43, 20)
# 如果有正确的敌人,使用if来攻击。
# 检查下面是否有敌人存在。
# 建造一个陷阱,如果敌人存在的话。
概览
食人魔从上、左、下来袭,因此你的循环中需要三组命令: 一组用于 top 、一组用于 left 、一组用于 bottom 。
基于上方的示例代码编写出左侧和下方的代码。
确保在每一组命令中:
- 首先 moveXY 到 X 标记
- 在到达标记之后,使用 findNearestEnemy 定义一个新 enemy 变量
- 编写 if 语句:如果存在敌人,那么就在 X 标记处建造一个 "fire-trap"
此后,你的循环将反复运行,在三个入口处反复巡逻。
只有在看到食人魔来袭时,你才只需要建造火焰陷阱,否则想要进入村庄的农民会被误伤!
如果卡关,你可以仔细看看上方那部分代码,左侧和下方的代码可以参照着来。
荆棘农场 解法
# 在村口巡逻。
# 当你见到食人魔,建造一个火焰陷阱"fire-trap"。
# 不要让任何农民受到伤害。
while True:
hero.moveXY(43, 50)
top = hero.findNearestEnemy()
if top:
hero.buildXY("fire-trap", 43, 50)
hero.moveXY(25, 34)
left = hero.findNearestEnemy()
if left:
hero.buildXY("fire-trap", 25, 34)
hero.moveXY(43, 20)
bottom = hero.findNearestEnemy()
if bottom:
hero.buildXY("fire-trap", 43, 20)