1. 检查开关
func moveNext(){
moveForward()
moveForward()
}
moveNext()
for i in 1 ... 3{
if isOnClosedSwitch{
toggleSwitch()
}
moveForward()
}
2. 使用else if
for i in 1 ... 2
{
moveForward()
if isOnClosedSwitch{
toggleSwitch()
}else if isOnGem
{
collectGem()
}
}
3. 循环条件代码
for i in 1 ... 12 {
moveForward()
if isOnClosedSwitch
{
toggleSwitch()
}else if isOnGem
{
collectGem()
}
}
4. 满足条件时向上爬
func turnAround(){
turnLeft()
turnLeft()
}
for i in 1 ... 16 {
if isOnGem {
collectGem()
turnLeft()
} else {
moveForward()
}
}
5. 定义更巧妙的函数
func collectOrToggle() {
if isOnGem {
collectGem()
} else if isOnClosedSwitch {
toggleSwitch()
}
}
func leftNext(){
turnLeft()
moveForward()
moveForward()
turnLeft()
}
func rightNext(){
turnRight()
moveForward()
turnRight()
}
func runNext(){
for i in 1 ... 2 {
moveForward()
moveForward()
collectOrToggle()
}
}
runNext()
leftNext()
runNext()
rightNext()
runNext()
6. 围困其中
func collectOrToggle() {
if isOnGem {
collectGem()
} else if isOnClosedSwitch {
toggleSwitch()
}
}
func turnNext() {
for i in 1 ... 2{
collectOrToggle()
moveForward()
}
}
func oneNext() {
moveForward()
turnLeft()
collectOrToggle()
moveForward()
turnLeft()
}
oneNext()
for j in 1 ... 4 {
turnNext()
turnLeft()
}
7. 决策树
func collectOrToggle() {
if isOnGem {
collectGem()
} else if isOnClosedSwitch {
toggleSwitch()
}
}
func turnAround() {
turnLeft()
turnLeft()
}
func oneNext() {
turnRight()
moveForward()
moveForward()
moveForward()
turnLeft()
moveForward()
collectOrToggle()
}
func twoNext() {
turnAround()
moveForward()
turnRight()
moveForward()
moveForward()
moveForward()
turnRight()
}
func threeNext() {
moveForward()
collectOrToggle()
turnLeft()
moveForward()
collectOrToggle()
turnAround()
moveForward()
turnLeft()
}
for i in 1 ... 2 {
moveForward()
collectOrToggle()
oneNext()
twoNext()
threeNext()
moveForward()
}