アルゴリズム 4.どっちの手を使う?

このステージは独自のアルゴリズム(パターン)を見つけることが最初の課題です。私が見つけたものは、

  1. 閉スイッチのある場所で曲がる
  2. 行き止まりでは左に曲がる
  3. そうでない時は右に曲がる

というものです。マップは固定なので前に進むループはコマ数を数えてfor文で書いても良いですが、最後にだけ宝石があることを利用し、while文でそこまで進むようにするのが簡単でしょう。
コードにすると下記のようになります。

アルゴリズム 5.右に行くか、左に行くか

コードの最後に1つだけ開スイッチがあるので、そこに辿り着くことをゴールとしてそれまで(!isOnOpenSwitch)whileで繰り返すのを一番外側のループとします。

次に、行き止まりになったら適切な向きに方向を変えるブロックと、宝石やスイッチがあったら処理するブロックを分離するとスッキリするでしょう。

方向転換はステージをよく観察すると、行き止まりには4パターンあることがわかります。それぞれの条件で左右どちらに曲がればいいかは一定のルールが決まるので、それをif〜else if〜else if〜else ifで書いていきます。OR(||)を使って右に曲がる時と左に曲がる時の2パターンにまとめても良いでしょう。

各条件はelseでつなげるべきかは考えてみましょう。