【网易官方】极客战记(codecombat)攻略-森林-封闭的十字路口closed-crossroad

围栏还是陷阱?这取决于位置,当然还有函数。

简介

村庄位于一处繁忙的十字路口,只有老练的建造者才能保护它! 顺时针绕村庄移动。

在上下通道使用 "fire-trap" 。 左右通道使用 `"fence"。

函数可以定义很多参数,类型也可以各异,诸如字符串、数字等。

def sureBuildSomething(buildType, x, y):
    # 如下函数被调用时,
    # buildType将是"fence"
        # x将是20,y将是40
maybeBuildTrap("fence", 20, 40)

默认代码

# 只在看到敌人时进行建造。
# 该函数定义3个参数。
def maybeBuildSomething(typeToBuild, x, y):
    hero.moveXY(x, y)
    # 找到最近的敌人

 

    # 如果存在敌人

 

        # 那么使用buildXY,参数typeToBuild, x, 和 y
        # 使用变量typeToBuild作为第一个参数。

 

    pass
# 你不需要改动下面的代码。
while True:
    # 调用 maybeBuildSomething,使用"fire-trap"及底部X的坐标。
    maybeBuildSomething("fire-trap", 40, 20)
    # 调用maybeBuildSomething,在左侧X处使用"fence"!
    maybeBuildSomething("fence", 26, 34)
    # 调用maybeBuildSomething,在顶部的X处使用"fire-trap"!
    maybeBuildSomething("fire-trap", 40, 50)
    # 调用maybeBuildSomething,在右侧X处使用"fence"!
    maybeBuildSomething("fence", 54, 34)

概览

函数可以有任意数目的参数,其类型也可以各异。

例如 buildXY ,它有 3 个参数:一个字符串(要建造的对象的类型)和两个数字(x 及 y 坐标值)

def maybeBuildSomething(buildType, x, y):
    # 如下函数被调用时,
    # buildType是'fence', x是40, y是20
maybeBuildSomething('fence', 40, 20)

buildType 是一个字符串, x 和 y 是数字。

注意:调用函数时,参数顺序需要同定义时保持一致。

现在你可以为 "fence" 和 "fire-trap" 使用同一个函数,而不是两个,这样代码就会简洁很多!

封闭的十字路口 解法

# 只在看到敌人时进行建造。
# 该函数定义3个参数。
def maybeBuildSomething(typeToBuild, x, y):
    hero.moveXY(x, y)
    # 找到最近的敌人
    enemy = hero.findNearestEnemy()
    # 如果存在敌人
    if enemy:
        # 那么使用buildXY,参数typeToBuild, x, 和 y
        # 使用变量typeToBuild作为第一个参数。
        hero.buildXY(typeToBuild, x, y)
# 你不需要改动下面的代码。
while True:
    # 调用 maybeBuildSomething,使用"fire-trap"及底部X的坐标。
    maybeBuildSomething("fire-trap", 40, 20)
    # 调用maybeBuildSomething,在左侧X处使用"fence"!
    maybeBuildSomething("fence", 26, 34)
    # 调用maybeBuildSomething,在顶部的X处使用"fire-trap"!
    maybeBuildSomething("fire-trap", 40, 50)
    # 调用maybeBuildSomething,在右侧X处使用"fence"!
    maybeBuildSomething("fence", 54, 34)
本攻略发于极客战记官方教学栏目,原文地址为:
https://codecombat.163.com/news/jikezhanji-fengbideshizilukou
 
 
原文地址:https://www.cnblogs.com/codecombat/p/12255029.html