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.