Path finding
Croco
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je cherche a créer un fonction qui renvoie le chemin le plus court entre deux points (sur un plateau de 9x9 cases)
voici mon code
il y a pas mal d'incohérence et c'est pour cette raison que j'aurai besoin de votre aide !
je cherche a créer un fonction qui renvoie le chemin le plus court entre deux points (sur un plateau de 9x9 cases)
voici mon code
int matrice[9][9]; int i, j; int distance = 0; for (i=0, i<9, i++) //initialisation à 82 chemin maximum 82 for (j=0, j<9, j++) matrice[i][j]=82; // considéré comme l'infini Point position = recuperer_cordonnees_case (pions[idJoueur].x, pions[idJoueur].y);// position du joueur matrice[pions[idJoueur].x][pions[idJoueur].y] = 0; //On définie la case comme occupé par le joueur int calculer_distance(int matrice[9][9],Point position) { matrice[position.x][position.y] = distance+1; Point pclic; //point 0,0 en haut à gauche pos.x=position.x+1; //droite pos.y=position.y; if (peut_on_avancer(idJoueur,pos)==TRUE) //peut on avancer renvoie 1 si on peut avancer { if (distance < matrice[pos.x][pos.y]) { matrice[pos.x][pos.y]=distance; distance=calculer_distance(*matrice,pos); } } pos.x=position.x-1; //gauche pos.y=position.y; if (peut_on_avancer(idJoueur,pos)==TRUE) { if (distance < matrice[pos.x][pos.y]) { matrice[pos.x][pos.y]=distance; distance=calculer_distance(*matrice,pos); } } pos.x=position.x; //bas pos.y=position.y-1; if (peut_on_avancer(idJoueur,pos)==TRUE) { if (distance < matrice[pos.x][pos.y]) { matrice[pos.x][pos.y]=distance; distance=calculer_distance(*matrice,pos); } } pos.x=position.x; //haut pos.y=position.y+1; if (peut_on_avancer(idJoueur,pos)==TRUE) { if (distance < matrice[pos.x][pos.y]) { matrice[pos.x][pos.y]=distance; distance=calculer_distance(*matrice,pos); } } return distance; //distance la plus court }
il y a pas mal d'incohérence et c'est pour cette raison que j'aurai besoin de votre aide !
EDIT : Ajout du LANGAGE dans les balises de code.
Explications disponibles ICI Merci d'y penser dans tes prochains messages. |
1 réponse
Bonjour,
Je me suis arrêté à la 4ème ligne :
for (i=0, i<9, i++) //initialisation à 82 chemin maximum 82
Ce ne sont pas des virgules (,) mais points virgules (;) qu'il faut mettre.
Corrige tous tes for, recompile et dis-nous si tu as toujours des incohérences.
Je me suis arrêté à la 4ème ligne :
for (i=0, i<9, i++) //initialisation à 82 chemin maximum 82
Ce ne sont pas des virgules (,) mais points virgules (;) qu'il faut mettre.
Corrige tous tes for, recompile et dis-nous si tu as toujours des incohérences.
Croco
bonjour, les for ne sont qu'une erreur de recopie !
fiddy
Messages postés
11069
Date d'inscription
Statut
Contributeur
Dernière intervention
1 846
Si tu nous disais précisément quelles sont les incohérences que tu obtiens, on pourra t'aider plus facilement. D'ailleurs un code complet serait apprécié, car là il manque pas mal de chose pour avoir une vision complète : définition des structures, de certaines variables, etc.