Je vais détailler un peu plus (je ne connais pas le pseudo code standar, mais tu devrais comprendre)
/*initialisation*/
case tableau[NBCASESMAX];
int pointeur_debut_file=0;
int pointeur_fin_file=1;
tableau[0]=sortie_labyrinthe;
/*boucle*/
while (pointeur_fin_file>pointeur_debut_file)
{
case_en_cours=tableau[pointeur_debut_file];
si case_de_gauche existe
si case_de_gauche 'pas dans tableau'
{tableau[pointeur_fin_file]=case_de_gauche;
'idem case_du_dessus'
'idem case_du_dessous'
'idem case_de droite'
pointeur_debut_file++;
}
printf("Nombre de cases accessibles: %d\n",pointeur_fin_file);
A part ça les déclarations se font en dehors des boucles. Par ailleurs si tu ne lis qu'une seule ligne du labyrinthe (avec ton scanf), rentre là dans un tableau de une dimension, ça marchera mieux. Sauf que du coup comme tu rentre tes lignes une par une, tu ne peux pas trouver les cases accessibles de la ligne du dessous avant d'avoir rentré cette ligne. En bref il va falloir que d'abord tu fasses une fonction char **charge(void) qui va te charger ton labyrinthe dans un tableau de caractères et ensuite seulement tu pourras exécuter dessus un algorithme de recherche des cases libres. Mais mélanger les deux me parait risqué..
Partager