Swift Playgrounds

コードを学ぼう1【右にも左にも】解答例と解説

右にも左にも

解答例

func turnAround() {
  turnLeft()
  turnLeft()
  moveForward()
  moveForward()
}

func solveRow() {
  turnRight()
  moveForward()
  collectGem()
  moveForward()
  collectGem()
  turnAround()
  moveForward()
  toggleSwitch()
  moveForward()
  toggleSwitch()
  turnAround()
  turnLeft()
  moveForward()
}

for i in 1 ... 3 {
  solveRow()
}

解説

だんだん複雑になってきました。
まずは、奥まで行った後に振り返って帰ってくる動作をひとまとめにします。
これは、スイッチ側も宝石側も使える関数なので、便利です。
そして、一列分を解決する関数(solveRow())を作ります。
帰ってきてから、次の列に向かうためのturnLeft()moveForward()を忘れないようにするのがコツです。
これがないと、最後にforループで一行書けばOKという形になりません。

要点まとめ

・複数の場所で使い回しできる関数を見つけよう