swift playgroundsで何度目かの学び直しをしています。
画像のとおりにコードを打ちまして、赤い宝石までは順調に行くのですが、宝石のマスで止まってくれず、そのまま素通りしてしまいます。
while文のネストが良くないのでしょうか?
!isOngem が解除されたら(宝石のマスに来たら)外枠のwhile文から抜けてcollectGemしてほしいのですが、そのまま真っ直ぐ歩いてしまいます。
教えていただけたら助かります。
よろしくお願いします。画像の説明をここに入力

以下が解決前のコードです。

func move() {
    toggleSwitch()
    if isBlocked {
        turnLeft()
    } else if !isBlockedRight{
        turnRight()
    }
}
while !isOnGem {
    while !isOnClosedSwitch {
        moveForward()       
    }
    move()    
}
collectGem()