Encontrando as paredes para seguir

Este é exatamente o mesmo labirinto que o anterior, mas o buggle não inicia na mesma localização. Em particular, não existe nenhuma parede à esquerda dele no início.

Como resultado, o método que você escreveu para o exercício anterior provavelmente não vai funcionar neste agora. Se você usar ele aqui sem modificações, seu buggle provavelmente vai iniciar rodando nas quatro células ao redor do ponto inicial (se este não é o caso, bem, é por que você não fez o pedido no exercício enterior. Você deu sorte. Agora vá para o próximo exercício :)

Isto é por que seu método keepHandOnSideWall() tem uma pré-condição implícita: ele funciona bem se e apenas se o buggle tem uma parede na esquerda quando você chama ele. Tais pré-condições são muito usadas em programação. Especificar elas explicitamente ajuda a entender o código escrito por outros, e eles até servem, às vezes, para provar que o código está funcionando corretamente.

Objetivo do exercício

Consertar o problema deve ser bem fácil. Simplesmente garanta que a pré-condição de keepHandOnSideWall() seja verificada antes do chamado. Para isto, atualize seu código para primeiro olhar para uma parede à sua esquerda antes do loop while maior.