Fais le en récursif alors.
Exemple théorique: Récupère tout les 1 et les 0, et tu les mets dans une matrice.
fonction est_valide(Matrice m, Entier x, Entier y) : qui renvoie un boolean début // On vérifie si la coordonnés définit par x et y est valide // Vérifions que ça ne soit pas hors borne Si x >= largeur Ou x < 0 Ou y >= hauteur Ou y < 0 alors retourner faux;
retourner Matrice[x][y] == 1; // Si tu es débutante, cette ligne veut dire, retourner vrai si c'est égale à 1, faux sinon. fin
fonction recherche(Matrice m, Entier x, Entier y) : qui renvoie un tableau de coordonnés début variable locale: Tableau de coordonnés : tab = [(x,y)] // Regarder si les coordonnées d'à côté sont valides Si est_valide(Matrice, x - 1, y) alors tab = tab + recherche(Matrice, x - 1, y); Sinon Si est_valide(Matrice, x, y - 1) alors tab = tab + recherche(Matrice, x, y - 1); ... // Ici tu le fait pour les 8 directions.
retourner tab; fin
fonction Main() début variable locale: Matrice d'entier: m; Tableau de coordonnés : tab = [] (vide); m = récuperer tout ce qu'il y a dans le fichier et le mettre dans la matrice. // Ici je suppose que tu commence tout en haut à gauche, et que la case est libre. tab = rechercher(m, 0, 0); Afficher (tab); fin
Attention, ce n'est pas du C, c'est vraiment une méthode théorique pour te présenter la manière de faire, à toi ensuite de coder cela, si tu as compris la méthode.
|