Svoltare all'uscita giusta in una rotonda è una operazione delicata e il processo logico che ne è alla base (o dietro le quinte, se preferite) nasconde alcuni pericolosi
bug.
Il più comune ed intuitivo è la caduta in
loop infinito: se nessuna uscita corrisponde alla via che cercate (ad esempio:
Via del Ritorno) potreste girare in tondo in eterno pensando "E' questa? no, vediamo la prossima... E' questa? no, vediamo la prossima... E' questa? no, vediamo la prossima... E' questa? no, vediamo la prossima..." e così via.
Una variante molto più raffinata e meno dispendiosa per la vostra
CPU è questa: mettiamo che voi stiate già percorrendo
Via del Ritorno, e dobbiate semplicemente attraversare una rotonda e proseguire. Il programma grosso modo dice
entra in rotonda;
if (uscita = "Via del Ritorno") esci dalla rotonda;
else continua a girare;
e sembra funzionare. Ma se la
Via del Ritorno oltre la rotonda cambia nome.... allora il vostro giro completerà i 360 gradi e voi uscirete da dove siete entrati e percorrerete
Via del Ritorno in senso opposto!
E pedalerete, pedalerete, pedalerete...