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

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

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

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

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