「网易官方」极客战记(codecombat)攻略-沙漠-十字路口-crossroads

(点击图片进入关卡)

交易处遭到围攻!通过检查食人魔的攻击方向守卫交易处

简介

检查敌人是否在英雄的上方、下方、左侧或右侧。

然后在这个方向上用 X 标记 buildXY``"fire-trap" !

默认代码

# 使用 "fire-trap"打败进攻的食人魔。
while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        # 如果敌人在英雄的左侧:
        if enemy.pos.x < hero.pos.x:
            # 如果敌人从左边进攻,在左边建一个"fire-trap"。

 

            pass
        # 如果敌人在英雄的右侧:
        elif enemy.pos.x > hero.pos.x:
            # 如果敌人从右边进攻,在右边建一个"fire-trap"。

 

            pass
        # 如果敌人在英雄下面。
        elif enemy.pos.y < hero.pos.y:
            # 如果敌人从下边进攻,在下边建一个"fire-trap"。

 

            pass
        # 如果敌人在英雄上面。
        elif enemy.pos.y > hero.pos.y:
            # 如果敌人从上边进攻,在上边建一个"fire-trap"。

 

            pass
    # 移动回中心。
    hero.moveXY(40, 34)

概览

兽人从四方进攻,你要拦截他们!

使用 < 和 > 操作符获得他们的来向。 记得 < 就是 less-than 小于 的意思,而 > 就是 greater-than 大于 的意思。

有时大声说出这些挺有用。

enemy = hero.findNearestEnemy()
if hero.pos.x > enemy.pos.x:

或者直白点, if 如果(if) 英雄的 x 坐标 greater-than 大于 敌人的 x 坐标. 因为最小的 x 坐标在左边,所以你的英雄在食人兽的右边。

十字路口 解法

# 使用 "fire-trap"打败进攻的食人魔。
while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        if enemy.pos.x < hero.pos.x:
            # 如果敌人从左边进攻,在左边建一个"fire-trap"。
            hero.buildXY("fire-trap", 25, 34)
        elif enemy.pos.x > hero.pos.x:
            # 如果敌人从右边进攻,在右边建一个"fire-trap"。
            hero.buildXY("fire-trap", 55, 34)
        elif enemy.pos.y < hero.pos.y:
            # 如果敌人从下边进攻,在下边建一个"fire-trap"。
            hero.buildXY("fire-trap", 40, 19)
        elif enemy.pos.y > hero.pos.y:
            # 如果敌人从上边进攻,在上边建一个"fire-trap"。
            hero.buildXY("fire-trap", 40, 49)
    hero.moveXY(40, 34)
 
本攻略发于极客战记官方教学栏目,原文地址为:
 
原文地址:https://www.cnblogs.com/codecombat/p/13151344.html