Uau! O seu buggle perdeu-se novamente no mesmo tipo de labirinto, mas desta
vez, os corredores nem sempre são do mesmo tamanho. Porque não há como saber
a comprimento do corredor antes de tomá-lo, um for não será
mais suficiente. Ao invés disso, terá que mudar o seu loop interno para usar
um loop while, a usar o método crossing() que diz
se o seu buggle está atualmente numa intersecção.
A complexidade adicional é que no início de um corredor, obviamente está num
cruzamento, mas ainda quer seguir. [!java|scala|c]Para isso, o mais fácil é
usar um loop do / while em vez de um loop regular
while para mover até a próxima intersecção.[/!] [!python]Para
isso, use uma variável adicional para indicar se já entrou no corredor, como
a seguir. Isto assegurará que execute o corpo do loop pelo menos uma vez
(quando firstTime for true) antes de usarmos o valor retornado
por crossing() para determinar se devemos continuar ou não.[/!]
primeiraVez = True while primeiraVez or not crossing(): primeiraVez = False (corpo do loop)[/!]
Com esse novo truque, o seu buggle deve sair desse labirinto muito facilmente.