在这一关里,我们要学着利用类型的属性状态进行操作,对于属性状态的识别,让角色通过传送门达到往复的目的。
传送门的状态是开是关对于角色来说很重要,我们想要赢,必须得学会调整传送门的属性状态。
代码如下:
'''swift
var gemNum = 0
var swiNum = 0
func newFind() {
if isBlocked && !isBlockedLeft && !isBlockedRight {
turnLeft()
moveForward()
}else if !isBlockedLeft && !isBlockedRight {
turnRight()
moveForward()
}else if !isBlockedLeft && isBlockedRight{
turnLeft()
moveForward()
} else if isBlocked && isBlockedLeft && isBlockedRight {
turnLeft()
turnLeft()
}else if isBlocked && isBlockedLeft && !isBlockedRight {
turnRight()
moveForward()
}else{
moveForward()
}
}
while gemNum < 6 || swiNum < 6{
if isOnGem {
collectGem()
gemNum += 1
}
if isOnClosedSwitch {
toggleSwitch()
swiNum += 1
}
newFind()
if gemNum % 2 == 0 && swiNum%2 == 0{
orangePortal.isActive = true
greenPortal.isActive = true
}else {
orangePortal.isActive = false
greenPortal.isActive = false
}
}
'''
通过我们的执行,得到了希望的结果。过程可能是有些时间和位置浪费,希望大家能找到更好的方式方法。