roberto.p89
15-11-2011, 09:43
Salve a tutti,
ho visto già altre discussioni riguardati lo stesso progetto che sto sviluppando io, ma nessuna di queste risolve il mio problema quindi vorrei chiedervi aiuto.
Il progetto consiste nel generare in modo casuale un labirinto di grandezza n x m con un numero k di muri interni. L'ingresso del labirinto potrà trovarsi in una delle posizioni perimetrali del labirinto ad eccezione dei suoi vertici, mentre l'uscita può trovarsi in un punto qualsiasi.
Non ho problemi nel generare il labirinto neanche per trovarne la soluzione (ad eccezione di un caso).
Per trovare la soluzione non posso utilizzare funzioni ricorsive.
L'algoritmo che ho usato consiste nel partire dall'uscita e tracciare il percorso fino all'ingresso. Ho reputato più agevole questo metodo in quanto la posizione dell'ingresso è vincolata dall'essere posizionata sul perimetro.
Dunque l'algoritmo di risoluzione si divide in due punti:
1- far raggiungere all'esploratore un muro perimetrale
2- una volta raggiunto questo muro con l'algoritmo della mano destra sarò sicuro di trovare l'ingresso nel caso sia raggiungibile.
Nel punto 2 non ho problemi. Il vero problema è raggiungere una posizione perimetrale dalla posizione d'uscita.
Qualcuno sa darmi consigli su come fare?
Se può essere utile fornisco il codice del labirinto da me sviluppato.
grazie
ho visto già altre discussioni riguardati lo stesso progetto che sto sviluppando io, ma nessuna di queste risolve il mio problema quindi vorrei chiedervi aiuto.
Il progetto consiste nel generare in modo casuale un labirinto di grandezza n x m con un numero k di muri interni. L'ingresso del labirinto potrà trovarsi in una delle posizioni perimetrali del labirinto ad eccezione dei suoi vertici, mentre l'uscita può trovarsi in un punto qualsiasi.
Non ho problemi nel generare il labirinto neanche per trovarne la soluzione (ad eccezione di un caso).
Per trovare la soluzione non posso utilizzare funzioni ricorsive.
L'algoritmo che ho usato consiste nel partire dall'uscita e tracciare il percorso fino all'ingresso. Ho reputato più agevole questo metodo in quanto la posizione dell'ingresso è vincolata dall'essere posizionata sul perimetro.
Dunque l'algoritmo di risoluzione si divide in due punti:
1- far raggiungere all'esploratore un muro perimetrale
2- una volta raggiunto questo muro con l'algoritmo della mano destra sarò sicuro di trovare l'ingresso nel caso sia raggiungibile.
Nel punto 2 non ho problemi. Il vero problema è raggiungere una posizione perimetrale dalla posizione d'uscita.
Qualcuno sa darmi consigli su come fare?
Se può essere utile fornisco il codice del labirinto da me sviluppato.
grazie