View Single Post
Old 26-10-2011, 15:29   #3
N4tty
Junior Member
 
Iscritto dal: Oct 2011
Messaggi: 9
Allora:

praticamente è la funzione che serve a muovere l'omino all'interno del labirinto, prende come parametri un puntatore a struttura dati di tipo lista, un puntatore alla matrice labirinto, le coordinate x e y attuali e il numero totali di righe e colonne, restituisce 1 se esistono passaggi liberi (labirinto[x][y] == 1; 1 è posizione libera, 0 è muro, 2 è posizione già percorsa, 3 è uscita) o 0 altrimenti (nessun movimento possibile).

Inizializzo le variabili su, giu, sinistra e destra ( le attuali coordinate con + e -1), controllo che non siano come il numero di righe totali o minori di 0, sennò altrimenti dopo si andrebbe a cercare di confrontare un elemento che non esiste all'interno di labirinto, e le decremento/incremento in caso. Inizializzo una matrice di 4 righe e 2 colonne, che mi servirà per inserire tutti i possibili passaggi dell'omino, settando ogni elemento con -1.
Vedo se si può andare su/giu/destra/sinistra ed ogni volta che si può, metto nella matrice le due coordinate corrispondenti. Calcolo in modo random un numero da 0 a i-1 (i = numero di passaggi accessibili) e scelgo quelle coordinate come prossima mossa, modificando la posizione attuale del labirinto ( da 1 a 2, posizione già percorsa) e aggiungendo le nuove coordinate alla lista che si occupa di gestire il percorso dell'omino (richiamando push con le nuove coordinate).

Se non si è capito qualcosa ditemelo che rispiego meglio.
N4tty è offline   Rispondi citando il messaggio o parte di esso