Bonjour tt le monde,
g a écrire un code pour résoudre un sudoku.
on suppose ke la grille en entrée est un tableau de 9*9 chiffres entre 0 et 9 (0 pr les cases vides).
inspirée de celle présente ds le code de i2i.fr la fonction resoudre est la suivante :
void resoudre(void)
{
int ligne, col, nbre, nbre_tamp;
for (ligne = 0; ligne < size; ligne++) {
for (col = 0; col < size; col++) {
if (sudo[ligne][col]) continue;
for (nbre = 1; nbre <= size; nbre++) {
if (!verifier(ligne,col,nbre,sudo)) continue;
nbre_tamp = sudo[ligne][col];
sudo[ligne][col] = nbre;
resoudre();
if (grille_finie(sudo)) return;
sudo[ligne][col] = nbre_tamp;
}
return;
}
}
return;
}
indications:
-la grille à resoudre est sudo
-la fonction verifier(i,j,x,sudo) renvoi 1 s'il est possible de placer x dans sudo[i][j] et 0 sinon
-la fonction grille_finie renvoi 1 si la grille est remplie (plu de cases vides) et 0 sinon
-resoudre() est recursive
voilà, kan j'execute ça ne resoud pa la grille, la grille en entrée reste la mem en fin de traitement-->je ne compren pa du tou, je blok là svp aidez moi
un grand merci d'avance