O seu buggle perdeu-se num estranho labirinto e deve ajudá-lo a achar a
saída que está representada em laranja. Não pode simplesmente explicar o
caminho para a saída com algo do tipo
right();forward();forward();forward()
por que tem que gravar
dois buggles ao mesmo tempo, que estão presos em mundos similares, mas não
iguais. Pode alternar para o outro mundo a usar 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 pode ver, o mundo é feito de vários corredores, com baggles no chão. Depois de cada corredor, deve virar à esquerda se o corredor tiver três baggels ou mais e virar a direita se tiver apenas 2 ou menos baggles.
Deve contar exatamente 5 células por corredor, de intersecção a intersecção. Considere na sua contagem a intersecção terminar o corredor, mas não a intersecção antes do corredor.
Logo, a forma geral do seu código deve ser algo como "enquanto não encontrar
a saída, escolha o próximo corredor para decidir se vira à esqueda ou à
direita na próxima intersecção". Pode determinar se está na célula de saída
(que é laranja) com o método exitReached()
fornecido.
Para entrar num corredor, 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.
Ah, e quando chegar na saída, não se esqueça de dar um passo a mais para sair de fato do labirinto!