Bonjour à tous,
je suis étudiant en première année de licence info et j'ai un projet à rendre.
Je dois créer un jeu où le but est de s'enfuir d'un labyrinthe créer aléatoirement.
Après deux jours d'essai, je n'ai pas réussi a créer moi même le labyrinthe. J'ai donc recherché sur internet et j'ai trouvé un superbe algorithme:
1. Initialisation :
— Une matrice L[N][M] donnée ;
—k←0 ;
— Pour i de 0 à N faire :
— Pour j de 0 à M faire :
— Si (i impair et j impair) alors :
—L[i][j]←k;
—k=k+ 1 ;
— Sinon :
—L[i][j]←-1 ;
— FIN “Si” ;
— FIN “Pour” ;
— FIN “Pour” ;
2. Pour NbCasesAZero, le nombre de cases `a 0 :
NbCasesAZero= 1 ;
3. Tant que NbCasesAZero < N×M faire :
— Prendre au hasard (x, y) tel que :
L[x][y] =−1 et (x impair ou y impair) ;
— Si x impair alors :
— d←L[x][y−1]−L[x][y+ 1] ;
— Si d >0 alors :
—L[x][y]←L[x][y+ 1] ;
— Propager la valeur L[x][y+1] à partir du point (x, y−1) (en 4-connexité) pour les cases contenant la valeur L[x][y−1];
— Sinon, si d <0 alors :
— L[x][y]←L[x][y−1] ;
— Propager la valeur L[x][y-1] à partir du point (x, y+1) (en 4-connexité) pour les cases contenant la valeur L[x][y+1];
— Sinon (y impair) :
— d←L[x−1][y]−L[x+ 1][y] ;
— Si d >0 alors :
—L[x][y]←L[x+ 1][y] ;
— Propager la valeur L[x+1][y] à partir du point (x-1, y) (en 4-connexité) pour les cases contenant la valeur L[x-1][y];
— Sinon, si d <0 alors :
— L[x][y]←L[x−1][y] ;
— Propager la valeur L[x-1][y] à partir du point (x+1, y) (en 4-connexité) pour les cases contenant la valeur L[x+1][y];
4. FIN “Tant que”.
Mais je n'ai absolument aucunes idées de ce que veux dire:
- "Propager la valeur L[x][y+1] à partir du point (x, y−1) (en 4-connexité) pour les cases contenant la valeur L[x][y−1];"
Et je n'ai rien trouvé sur internet. Si quelqu'un pourrait m'expliquer ce qu'il faut faire!
Merci d'avance
Partager