Trilhas de buggles

Seu buggle se perdeu num estranho labirinto, e você deve ajudá-lo a achar a saída que está representada em laranja. Você não pode simplesmente explicar o caminho para a saída com algo do tipo direita();avançar();avançar();avançar() por que você tem que salvar dois buggles ao mesmo tempo, que estão presos em mundos similares mas não iguais. Você pode alternar para o outro mundo usando o combobox acima da representação do mundo (onde está escrito 'Floresta Fechada' agora), e selecionar a outra entrada (que deve ler 'Floresta Mais Fechada').

A boa nova é que o caminho para a saída está desenhado no chão. Como você pode ver, o mundo é feito de vários corredores, com baggles no chão. Depois de cada corredor, você deve virar à esquerda se o corredor tiver três baggels ou mais, e virar a direita se tiver apenas 2 ou menos baggles.

You should count exactly 5 cells per corridor, from intersection to intersection. Consider in your count the intersection ending the corridor but not the intersection before the corridor.

Logo, a forma geral de seu código deve ser algo como "enquanto não encontrar a saída, pegue o próximo corredor para decidir se vira à esqueda ou à direita na próxima intersecção". Você pode determinar se você está na célula de saída (que é laranja) com o método saídaAlcançada() fornecido.

Para entrar num corredor, você tem que simplesmente correr de uma intersecção para outra enquanto conta os baggles que vê no seu caminho. Isto é fácil: existem 5 passos em cada corredor, de forma que um simples loop for resolve.

Você precisa de uma variável que é inicializada em 0, e incrementada cada vez que você vê um baggle no chão. Uma variável usada desta forma é frequentemente chamada de contador.

Não esqueça de resetar seu contador para 0 no começo de cada corredor!

Ah, e quando chegar na saída, não esqueça de dar um passo a mais para sair de fato do labirinto!