1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| void algorithme de Pledge () {
int compteur=0;
int m=15, n =15; // je crée un tableai qui ici symbolisera le labyrinthe. En réalité, le lbyrinthe est déjà crée
int tab2D[m][n]; // par un autre programme de manière aléatoire et correcte (il contient forcément une solution)
typedef struct Robot { int x, y; Direction d; } Robot;
Robot.x=3; // on place le robot à la case de coordonnées 3,3. Le programme qui génère le labyrinthe, génère aussi aléatoirement
Robot.y=3; // une case de départ symbolisée D... mais commme on ne connait pas d'avance la position de D, on va dire qu'ici on commance à la case 3.3
While (on est pas sortie du labyrinthe){
Robot.y++; //le robot va tout droit
if (tab2D[y+1][x]=1){ // si on rencontre un mur, le robot tourne à gauche et on incrémente le compteur
tourne à gauche;
compteur++;
}
if (tab2D[y][x+1]=!1){
if (compteur=!0){
tourne à gauche ou à droite; // si on ne longe plus le mur et que le compteur est différent de 0 on tourne à gauche ou a droite pour rester en contact avec le mur
compteur ++; // ou compteur --
}
}
}
return 0;
} |