出発点から4方向に2ブロックおきにスイッチが並んでいるので、これを順にオンにしていきます。
どういうコマンドのかたまりを関数にまとめるかは自分で考えます。「2マス進んでスイッチを入れる」というのが基本パターンになりそうですが、あえて関数のネストの練習と思って細かい目に関数を分割してみました。それぞれの関係性をチェックしてみてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
//前に2歩進む func move2() { moveForward() moveForward() } //2歩進んでスイッチを操作する func move2Switch() { move2() toggleSwitch() } //後ろを振り返る func turnBack() { turnLeft() turnLeft() } //短辺のスイッチを処理 func move2SwitchBack() { move2Switch() turnBack() move2() } //長辺のスイッチ2つをまとめて処理 func move4get2switchBack() { move2Switch() move2Switch() turnBack() move2() move2() } //ここからようやく目に見えて動き出す本編部分。短辺に2方向を処理した後、長辺の2方向を処理。 move2SwitchBack() move2SwitchBack() turnLeft() move4get2switchBack() move4get2switchBack() |