Swift Playgrounds

コードを学ぼう1【パターンを探す】解答例と解説

パターンを探す

解答例

func moveThenToggle() {
  moveForward()
  moveForward()
  toggleSwitch()
}

func toggleThenReturn() {
  moveThenToggle()
  turnLeft()
  turnLeft()
  moveForward()
  moveForward()
}

toggleThenReturn()
toggleThenReturn()
turnRight()
moveThenToggle()
toggleThenReturn()
moveForward()
moveForward()
moveThenToggle()
moveThenToggle()

解説

課題の『例』にあるように、まずは2マス進んで宝石をゲットする関数を作ります。
次に、作った関数を利用して『スイッチを押して同じ場所に帰ってくる』関数を作ります。
この2つの関数を利用して、ゴールを目指します。

まず、toggleThenReturn()を実行して帰ってくると、
向かい側も解決できる方向を向いているので、そのままもう一度toggleThenReturn()を実行します。
次に、左右どちら側からでも良いのですが、向きを変えて
最初に作った関数moveThenToggle()、そして二番目の関数で奥のスイッチを押してその場に帰ってきます。
あとは、2歩進み、moveThenToggle()を2回実行すればゴールです。

ここでも、小さな動作にまず分解することが大切ということですね。
どちらの関数を使えばより効果的か、考えながらコードを書いてみましょう。

要点まとめ

様々な場面で使える小さいパターンの関数を見つけよう