Swift Playgrounds

コードを学ぼう1【囲まれる】解答例と解説

囲まれる

解答例

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ループですっきりしたコードを作ろう