「网易官方」极客战记(codecombat)攻略-森林-封闭的十字路口-closed-crossroad
< 返回列表时间: 2020-06-19来源:OSCHINA
(点击图片进入关卡)
围栏还是陷阱?这取决于位置,当然还有函数。
简介

村庄位于一处繁忙的十字路口,只有老练的建造者才能保护它! 顺时针绕村庄移动。
在上下通道使用 "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 极客战记——学编程,用玩的
热门排行