「网易官方」极客战记(codecombat)攻略-沙漠-沙丘-the-dunes

「网易官方」极客战记(codecombat)攻略-沙漠-沙丘-the-dunes_第1张图片
(点击图片进入关卡)

看,沙漠,充满了荣耀、危机,当然还有沙子,很多很多的沙子。

简介

检查敌人类型 enemy.type ,以决定攻击哪些敌人

if enemy.type == "sand-yak" or enemy.type == "burl":
    # 不要攻击这些类型的敌人。
else:
    # 否则就是别的类型,那就攻击。

默认代码

# 收集硬币,忽略"sand-yak"和"burl"。
while True:
    enemy = hero.findNearestEnemy()
    item = hero.findNearestItem()
    if enemy:
        if enemy.type == "sand-yak" or enemy.type == "burl":
            # 别攻击!赶紧收集硬币。

 

                pass
            else:
                # 否则,攻击。

 

                pass

 

        elif item:
            # 收集硬币:移动到物品的位置。

 

            pass
        else:
            hero.moveXY(41, 31)
# 当牦牛靠近时向右移动10米来躲避
# 躲避4头牦牛完成此关
while True:
    # 使用你的灵石获取你当前的 x 和 y 位置。
    x = hero.pos.x
    y = hero.pos.y

 

    # 找到最近的耗牛。
    yak = hero.findNearestEnemy()

 

    # 使用 if 仅仅当牦牛少于10米距离的时候。
    if hero.distanceTo(yak) < 10:
        # 向右移动,添加10到你的x位置。

 

        # 使用 moveXY 来移动!

 

        pass

 

概览

还记得濒危树瘤之战关卡吗? 本关中,我们将检查 enemy.type 属性,以确保只攻击食人魔,而不攻击 "sand-yak"或者 "burl" 类型。

沙牦牛是强大凶猛的野兽,大小和速度各异。 如果你攻击或是离得太近,沙牦牛会立马踏平你。但如果你保持距离,它们就会保持平静。

查看示例代码是如何使用或运算符的:

if enemy.type == "sand-yak" or enemy.type == "burl":
    # 不要攻击!接着收集硬币。

它的意思是,如果 这样 或者 那样,那么就 ... 这可以将 "sand-yak" 和 "burl" 两种类型的检查,合到一条if语句中。

沙丘 解法

# 收集硬币,忽略"sand-yak"和"burl"。
while True:
    enemy = hero.findNearestEnemy()
    item = hero.findNearestItem()
    if enemy:
        if enemy.type == "sand-yak" or enemy.type == "burl":
            # 别攻击!赶紧收集硬币。
            if item:
                hero.moveXY(item.pos.x, item.pos.y)
                pass
            else:
                # 否则,攻击。
                hero.attack(enemy)
                pass

 

        elif item:
            # 收集硬币:移动到物品的位置。
            hero.moveXY(item.pos.x, item.pos.y)
            pass
        else:
            hero.moveXY(41, 31)
 

本攻略发于极客战记官方教学栏目,原文地址为:

https://codecombat.163.com/news/jikezhanji-shaqiu

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

你可能感兴趣的:(「网易官方」极客战记(codecombat)攻略-沙漠-沙丘-the-dunes)