このステージは独自のアルゴリズム(パターン)を見つけることが最初の課題です。私が見つけたものは、
- 閉スイッチのある場所で曲がる
- 行き止まりでは左に曲がる
- そうでない時は右に曲がる
というものです。マップは固定なので前に進むループはコマ数を数えてfor文で書いても良いですが、最後にだけ宝石があることを利用し、while文でそこまで進むようにするのが簡単でしょう。
コードにすると下記のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//最後にある宝石に到達するまで while !isOnGem { //閉スイッチ上でかつ正面が行き止まりの時 if isOnClosedSwitch && isBlocked { toggleSwitch() turnLeft() //単に閉スイッチの上 } else if isOnClosedSwitch { toggleSwitch() turnRight() } //上記2条件に関係なく一歩前進する moveForward() } //最後の宝石まで来たら実行される collectGem() |