宝石を1つ取り、スイッチを1つ操作するのが目標です。ワープも含め色々な道順が考えられると思います。いきなりコードを書き始めるのではなく、まず色々な道順を検討してみましょう。それぞれのルートを通った場合、moveForward()が必要な回数(=歩数)も考えてみて、もっとも少ないmoveForward()でクリアできるやり方を見つけ出しましょう。
以下は緑ワープを使って7歩でクリアできる例です。
1 2 3 4 5 6 7 8 9 10 |
moveForward() moveForward() moveForward() collectGem() moveForward() moveForward() //ここで緑のワープを通過 moveForward() moveForward() toggleSwitch() |
青ワープを使っても7歩で行けますが向きを変える操作も数えるとどうでしょう?
一般的にはコードの行数がなるべく少なく済むやり方が効率的と考えられます。