在上一关学会了属性的变化方法,现在我们在这一关加强练习吧。
在本关,我们要做的事情是按照需求对传送门的状态进行开或关,以便让角色顺利传送门的那块砖。
两个传送门是打开的
代码如下:
var gemNum = 0
purplePortal.isActive = true
while gemNum < 7 {
moveForward()
if isOnGem {
collectGem()
gemNum += 1
}
if isBlocked {
turnLeft()
turnLeft()
purplePortal.isActive = false
}
if isOnClosedSwitch {
toggleSwitch()
purplePortal.isActive = true
}
}
代码排版
另外,我们必须要注意传送门在什么样的情况下应该调整状态,这对角色的执行效率很重要。
purplePortal.isActive = true,是传送门的初始状态,它是个属性的状态,用false和ture来表示不同状态。
可以写出不同样的代码,让角色走一走,看看还有没有更好的方法。