zoukankan      html  css  js  c++  java
  • 「网易官方」极客战记(codecombat)攻略-沙漠-沙丘-the-dunes

    (点击图片进入关卡)

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

    简介

    检查敌人类型 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

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

  • 相关阅读:
    poj 1328 Radar Installation (贪心)
    hdu 2037 今年暑假不AC (贪心)
    poj 2965 The Pilots Brothers' refrigerator (dfs)
    poj 1753 Flip Game (dfs)
    hdu 2838 Cow Sorting (树状数组)
    hdu 1058 Humble Numbers (DP)
    hdu 1069 Monkey and Banana (DP)
    hdu 1087 Super Jumping! Jumping! Jumping! (DP)
    必须知道的.NET FrameWork
    使用记事本+CSC编译程序
  • 原文地址:https://www.cnblogs.com/codecombat/p/12966946.html
Copyright © 2011-2022 走看看