laenthis | Bonjour à tous, ça fait 3 heures que j'erre sur le net pour trouver une réponse à mon problème, mais devant 6 alternatives différentes qui ne répondent jamais correctement à mes besoins, je me tourne vers vous.
Je suis en train de coder un sudoku, et j'ai besoin de faire passer une grille initialisée à 0 (un tableau bi dimensionnel en somme) en paramètre à une fonction qui va la remplir avec des nombres. Mais, j'ai de monstrueux problème de syntaxe, je ne sais pas comment gérer tableaux et fonctions ensemble ainsi que le retour.
Voici mon code :
Code :
- int TestCarre(int *grille, int x, int y, int valeur) #Cette fonction et les deux qui suivent sont des tests pour savoir si les valeurs générée en random plus loin correspondent aux critères d'un sudoku.
- {
- int c = x/3;
- c = c*3;
- int d = y/3;
- d = d*3;
- int i;
- int j;
- int validite;
- for(i=c;i<c+3;i++)
- {
- for(j=d;j<d+3;j++)
- {
- if(valeur == grille[c][d])
- {
- validite = 1;
- if (i != x && j != y)
- {
- return validite;
- }
- }
- else
- {
- validite =2;
- }
- }
- }
- return validite;
- }
- int TestLigne(int *grille, int x, int y, int valeur)
- {
- int i;
- int validite = 0;
- for(i=0;i<9;i++)
- {
- if (valeur == grille[x][i])
- {
- validite = 1;
- if (i != y)
- {
- return validite;
- }
- }
- else
- {
- validite = 2;
- }
- }
- return validite;
- }
- int TestColonne(int *grille, int x, int y, int valeur)
- {
- int i;
- int validite;
- for(i=0;i<9;i++)
- {
- if (valeur == grille[i][y])
- {
- validite = 1;
- if (i != x)
- {
- return validite;
- }
- }
- else
- {
- validite = 2;
- }
- }
- return validite;
- }
- int Plateau(int *grille) #La fonction qui doit remplir la grille.
- {
- int i;
- int j;
- int r;
- int colonne;
- int ligne;
- int carre;
- for(i=0;i<9;i++)
- {
- for(j=0;j<9;j++)
- {
- roll:
- {
- r = rand()%9 + 1;
- grille[i][j] = r;
- printf("%i", r);
- colonne = TestColonne(grille,i,j,r);
- ligne = TestLigne(grille,i,j,r);
- carre = TestCarre(grille,i,j,r);
- if(colonne == 1 || carre == 1 || ligne == 1)
- {
- printf("Probleme" );
- goto roll;
- }
- }
- }
- }
- }
- int main()
- {
- int grille[9][9] = {{0,0,0,0,0,0,0,0,0}
- ,{0,0,0,0,0,0,0,0,0}
- ,{0,0,0,0,0,0,0,0,0}
- ,{0,0,0,0,0,0,0,0,0}
- ,{0,0,0,0,0,0,0,0,0}
- ,{0,0,0,0,0,0,0,0,0}
- ,{0,0,0,0,0,0,0,0,0}
- ,{0,0,0,0,0,0,0,0,0}
- ,{0,0,0,0,0,0,0,0,0}};
- int j;
- int i;
- for(i=0;i<9;i++)
- {
- for(j=0;j<9;j++)
- {
- printf("%i", grille[i][j]);
- }
- printf("\n" );
- }
- Plateau(grille);
- for(i=0;i<9;i++)
- {
- for(j=0;j<9;j++)
- {
- printf("%d", grille[i][j]);
- }
- printf("\n" );
- }
- }
|
Message édité par laenthis le 15-04-2016 à 18:35:49
|