Non vedo quale sia la sfida nel gioco, dato che è tutto determinato. Devi semplicemente seguire le frecce e invertire quelle toccate ad ogni passaggio, perciò la parola si forma sempre e comunque alla fine. Sarebbe stato leggermente più complesso se ti avessero chiesto di determinare l'ordine in cui devono cadere le lettere per formare una parola. Comunque...
Il tuo codice è spaventevole. Tutti quegli if sono inutili.
Come ha detto djleo, il tutto è risolvibile con un semplice albero binario. In ogni nodo poni il verso della freccia. Quindi esegui una visita breadth-first per arrivare all'ultimo livello dell'albero, ossia alle sue foglie, e le numeri in ordine crescente da destra a sinistra. Dopodiché esegui una visita depth-first in pre-order modificata in modo da scendere solo nel verso della freccia. Una volta arrivato a una foglia dell'albero, prendi il numero ad essa associato. Esso conterrà l'indice della lettera nella parola finale. Ripeti tutto tante volte quante sono le lettere.
|