「网易官方」极客战记(codecombat)攻略-山峰-劳心劳力-toil-and-trouble


点击图片进入关卡)

食人魔女巫:加倍麻烦。

简介

士兵和弓箭手应该瞄准不同的目标来完成这关。

“soldier” s 应该攻击 “witch” .
“archer” s 应该攻击离他们最近的敌人。
findByType 方法可以让你通过它们的类型找到所有(可见的)敌人或物品。 将它与findNearest 结合起来,你可以找到最近的单元 / 项目的类型。

gems = hero.findByType”gem”)
nearestGem = hero.findNearestgems)
nearestThrower = hero.findNearesthero.findByType”thrower”)

默认代码

# 食人魔巫师为您准备了一堆惊喜。
# 定义一个 chooseTarget 函数,让它接受 friend 参数的输入
# 根据士兵的类型返回要攻击的目标。
# 士兵应该攻击巫师,弓箭手应该攻击最近的敌人。
while True:
    friends = hero.findFriends)
    for friend in friends:
        # 用你的 chooseTarget 函数决定要攻击什么。

 

        pass

概览

定义一个 chooseTarget 函数,它接受一个名为 friend 的参数。

找到 nearest 敌人的朋友,以及最近的类型为 “witch” 的敌人(使用 “FiffyType”)

你的士兵应该先瞄准女巫,或者如果没有女巫,那就要瞄准最近的敌人。其他部队应始终瞄准最近的敌人。

Hint: 每个士兵都应该攻击离这名士兵最近的 “witch” ,这样可以将你的士兵分成两组,并且不会受到巫师袭击造成的溅射伤害。

劳心劳力解法

# 食人魔巫师为您准备了一堆惊喜。
# 定义一个 chooseTarget 函数,让它接受 friend 参数的输入
# 根据士兵的类型返回要攻击的目标。
# 士兵应该攻击巫师,弓箭手应该攻击最近的敌人。
def chooseTargetfriend):
    target = None
    if friend.type == “archer”:
        enemies = hero.findEnemies)
        target = friend.findNearestenemies)
    if friend.type == “soldier”:
        witches = hero.findByType”witch”)
        target = friend.findNearestwitches)
    return target
while True:
    friends = hero.findFriends)
    for friend in friends:
        # 用你的 chooseTarget 函数决定要攻击什么。
        enemy = chooseTargetfriend)
        if enemy:
            hero.commandfriend, “attack”, enemy)
 
本攻略发于极客战记官方教学栏目,原文地址为:
https://codecombat.163.com/news/jikezhanji-shanfenglaoxinlaoli

极客战记——学编程,用玩的

Published by

风君子

独自遨游何稽首 揭天掀地慰生平