在这一关里,我们要学习的是指定位置。可以理解成给一个指定的初始值。
这些值就是通过对函数的参数进行设置来实现的。
要实现的目标如下:
专家在什么位置出现是比较重要的。
这时候,我们就要对整个岛屿的坐标进行一个认识。可以把它看成一个9列8行的格子。每个行、每个列的开始第一个都是0,0行0列,就是(0,0)。这样子来数。
确定好位置后,我们就可以编写代码了。
world.place(expert, atColumn: 2, row: 6)
这是放置的函数,expert是可以替换的,你觉得可以换成什么?传送门,还是其他?atColumn就是指定出现的列数,row就是指定出现的行数。行和列的交汇点,就是是指定的位置了。
比如,在你的面前有一张田字格纸,它是9行8列的,我让你在第二列、第六行的位置写一个字。
又或者让你画一颗星星。字或者星星,就是上面的expert,而第二列,第六行就是atColumn和row。这样子,你就懂了。不懂的话,就拿出一张田字格纸来试试。
代码如下:
let expert = Expert()
world.place(expert, atColumn: 2, row: 6)
world.place(expert, atColumn: 1, row: 6)
expert.collectGem()
world.place(expert, atColumn: 1, row: 1)
expert.collectGem()
world.place(expert, atColumn: 6, row: 1)
expert.collectGem()
func walkGem() {
for i in 1 ... 2 {
expert.turnLeft()
expert.turnLock(up: true, numberOfTimes: 1)
expert.turnLeft()
expert.turnLeft()
expert.move(distance: 1)
expert.collectGem()
expert.turnLeft()
expert.turnLeft()
expert.move(distance: 1)
expert.turnRight()
expert.move(distance: 5)
}
expert.moveForward()
expert.collectGem()
}
world.place(expert, atColumn: 2, row: 6)
执行后:
同样,自己加上注释。