Bonjour,
Je suis sur un petit projet personnel et je suis surtout débutant en programmation. Je veux créé un programme qui est capable de lire un fichier de type tableau avec des X, des espaces ainsi qu'un point D et un point A(départ et arrivé). Le fichier ressemble a ceci. Pas de souci pour le lire et trouver les coordonnées de D pour savoir ou commencer a chercher mais le je n'arrive pas a faire pas foncion recursive pour remplir mon tableau avec des étoiles en trouvant le bon chemin évidemment.
XXXXXA X
X X X XX X
X XX X
XXXX XXX
X XXX X
X X X X
XXXX X
X XXXX
X XXX DXX
X XXXX
const int NB_RANGEE = 10;
const int NB_COL = 10;
char labyrinthe[10][NB_COL+2]; // 1 pour le \n, 1 pour le null
/*
* Fonction: lireFichier
* ----------------------------
* Lis le fichier labyrinthe.txt et place le contenu dans le tableau
*/
bool lireFichier()
{
FILE * fichier;
fichier = fopen("labyrinthe.txt", "r");
if (fichier == NULL)
{
printf("impossible d'ouvrir le fichier");
return false;
}
else
{
for (int i = 0; i < NB_RANGEE; i++)
{
for (int j = 0; j < NB_COL+2; j++)
{
labyrinthe[i][j] = fgetc(fichier);
printf("%c", labyrinthe[i][j]);
if (labyrinthe[i][j]=='\n')
{
break;
}
}
}
printf("\n");
}
return true;
}
bool trouveDepart(int* rangee, int* colonne)
{
for (int i = 0; i < NB_RANGEE; i++)
{
for (int j = 0; j < NB_COL+2; j++)
{
if (labyrinthe[i][j] == 'D')
{
*rangee = i;
*colonne = j;
printf(" Le Départ se trouve sur la rangee: %d et la colonne: %d", *rangee, *colonne);
return true;
}
}
}
return false;
}
'''bool trouveSolution(int rangee, int colonne)
{
if (trouveSolution(rangee, colonne + 1) == ' ' && trouveSolution(rangee, colonne +1))
{
printf("*");
colonne++;
return trouveSolution(rangee, colonne);
}
else if (labyrinthe[rangee][colonne - 1] == ' ' && trouveSolution(rangee, colonne - 1))
{
printf("*");
colonne--;
return trouveSolution(rangee, colonne);
}
else if (labyrinthe[rangee + 1][colonne] == ' ' && trouveSolution(rangee +1, colonne))
{
printf("*");
rangee++;
return trouveSolution(rangee, colonne);
}
else if (labyrinthe[rangee - 1][colonne] == ' ' && trouveSolution(rangee - 1, colonne))
{
printf("*");
rangee--;
return trouveSolution(rangee, colonne);
}
return false;
'''
int _tmain(int argc, _TCHAR* argv[])
{
lireFichier();
getchar();
int rangee = 0, colonne = 0;
trouveDepart(&rangee, &colonne);
getchar();
trouveSolution(rangee, colonne);
getchar();
écrireFichier();
getchar();
return 0;
}
Merci pour votre aide