codecombat极客战记森林61-70通关代码
python代码
61.罪与罚

# 看起来食人魔酋长正在偷你的宝石啊!
# 指挥两门火炮攻击敌人达成目标。
while True:
item = hero.findNearestItem()
if item:
itempos = item.pos.x + " " + item.pos.y
hero.say("item at :" + itempos)
enemy = hero.findNearestEnemy()
if enemy:
enemyPos = enemy.pos.x + " " + enemy.pos.y
hero.say("enemy at : " + enemyPos)
# 现在你遇到糖衣炮弹了
# 为什么不把糖衣也吃掉呢?
# 找到道具的位置并且
# 说出火炮将要攻击的目标。
62.返回AGRIPPA
def enemyInRange(enemy):
# 如果敌人少于距离5个,返回一个true值
dis = hero.distanceTo(enemy)
if dis < 5:
return True
else:
return False
def cleaveOrAttack(enemy):
if hero.isReady('cleave'):
hero.cleave(enemy)
else:
hero.attack(enemy)
while True:
enemy = hero.findNearestEnemy()
if enemy:
# 调用 enemyInRange 检查敌人的距离。
if enemyInRange(enemy):
cleaveOrAttack(enemy)
63.好伙伴的名字A

# 农民想知道宠物的名字。
# 使用这个函数作为"hear"事件的处理函数。
def sayName(event):
# 宠物会在函数调用时按顺序说这些。
pet.say("我名叫狂兽。")
pet.say("不过我的朋友们叫我毛球。")
# 使用pet.on("eventName", functionName)来添加事件监听函数给宠物
# 在这里使用"hear" sayName及pet.on()
pet.on("hear", sayName)
# 你这次不需要说任何东西!
# 农民会进行交谈。
64.好伙伴的名字B

# 宠物需要向英雄和农民问好。
# 使用这个函数作为"hear"事件的处理函数:
def sayHello(event):
# 宠物在说你好:
pet.say("致敬")
# 使用宠物的.on("eventType", functionName)方法.
# 这一关里,宠物需要在听到声音后运行sayHello
pet.on("hear", sayHello)
# 那么,问候宠物,等待回应。
hero.say("你好,朋友!")
65.博士猫咪

# 教你的宠物回答问题!
# 很幸运,所有的答案都是"2"
def sayTwo(event):
# 使用pet.say()来回答"2"
pet.say("2")
# 使用pet:on(),通过sayTwo来处理"hear"事件
pet.on("hear", sayTwo)
# 现在休息并观看表演吧!
hero.say("一加一等于…?")
hero.say("x^3 - 6x^2 + 12x - 8 = 0. x等于多少?")
hero.say("火星有多少卫星?")
66.好伙伴的名字

# 我们需要知道新宠物的名字。
# 把这个函数用作宠物 "hear" 事件的处理函数。
def onHear(event):
# 不要更改这个函数
pet.say("喵呜~ 汪 喵呜~")
pet.say("汪 汪")
pet.say("喵呜~")
pet.say("喵呜~")
pet.say("喵呜~ 汪 喵呜~ 喵呜~")
# 使用 “the pet.on(eventType,eventHandler) 方法”
# 指派onHear函数来处理"hear"事件。
pet.on("hear" , onHear )
# 这必须在 "pet.on" 的后面。
hero.say("伙计,你叫什么名字?")
hero.say("能重复一次吗?")
67.宠物小测试

# 编写一个事件处理函数,名为onHear
# 完成onHear函数
def onHear(event):
# 宠物需要在onHear中说点什么。
pet.say("可以")
pet.say("不是")
pet.say("5")
pet.say("好象是的")
pet.say("不告诉你")
pet.on("hear", onHear)
hero.say("能听懂我的话吗?")
hero.say("你是美洲狮吗?")
hero.say("你多大啦?")
# 再问两个问题。
hero.say("你是宠物吗")
hero.say("你在那里?")
68.看门狗

# 你无法帮助农民过河。
# 不过,你的宠物做得到!
# 将你的狼调教成看门狗。
def onSpawn(event):
while True:
# 宠物一样可以发现敌人。
enemy = pet.findNearestEnemy()
# 如果有敌人:
if enemy:
# 然后让宠物说点什么:
pet.say("注意,敌袭敌袭")
pet.on("spawn", onSpawn);
69.漫漫长路

# 移动到右边
# 补全这个函数:
def onSpawn(event):
# 在 while-true 循环里:
while True:
# 使用hero.findNearestItem()
item = hero.findNearestItem()
# 如果有物品:
if item:
# 使用pet.fetch(item)来拿取物品。
pet.fetch(item)
# 使用pet.on()来将onSpawn指派给"spawn"事件
pet.on("spawn", onSpawn)
hero.moveXY(78, 35)
70.空投

# 拿起刀剑,保护村庄。
def onSpawn (event):
while True:
item = hero.findNearestItem()
# 如果存在的话,宠物应该获取该物品:
if item:
pet.fetch(item)
# 为宠物的“spawn”分配onSpawn功能。
pet.on("spawn", onSpawn)
while True:
# Guard the left passage:
enemy = hero.findNearestEnemy()
if enemy:
hero.attack(enemy)