isBlockedが使えないよう、わざわざ曲がり角の先に1つコマが置かれてますね。
それ以外の条件(パターン)を見つけましょう。
例では同じループの中でスイッチの状態が変わる(変える)ところがポイントです。閉スイッチと開スイッチが混在してますが、どのみち閉だったらオンにしないとならず、その後であれば同じ様に曲がり角の条件として利用できるわけです。
1 2 3 4 5 6 7 8 9 |
while !isBlocked { moveForward() if isOnClosedSwitch { toggleSwitch() } if isOnOpenSwitch { turnRight() } } |