スポンサーリンク
スポンサーリンク
解答例
func collectOrToggle() {
if isOnGem {
collectGem()
} else if isOnClosedSwitch {
toggleSwitch()
}
}
func completeCorner() {
collectOrToggle()
moveForward()
collectOrToggle()
turnRight()
moveForward()
}
moveForward()
turnRight()
for i in 1 ... 4 {
completeCorner()
}
解説
真ん中以外の四辺の部分に必ず宝石かスイッチが現れます。
まずは、今までのように、『宝石があれば取り、offスイッチならonに』する関数を作ります。
一歩前に進み、右を向いた時点から始まりとすると、
『2つ分のマスを調べて右を向き、一歩前へ進んだ状態(completeCorner()
、(つまり角を処理する)』までを一つの関数にまとめます。
それを、forループで4回繰り返せばゴールです。
関数の中に条件分岐コードを入れると、便利ですね。
要点まとめ
・条件分岐コードでまず小さな部分を解決し、最終的にforループですっきりしたコードを作ろう
スポンサーリンク