# CRO - TD2 - Sudoku ###### tags: `CRO` `S2` `TD2` Proposition d'architecture d'implémentation : Region valide ```c #define inf(i) i-i%3 #define sup(i) i-i%3+3 int sudokuValide(int sudoku[9][9]) {int i,j,k,ii,jj; for (i=0; i<9; i++) for (j=0; j<9; j++) { if ((sudoku[i][j]<0)||(sudoku[i][j]>9)) fprintf(stdout,"coefficient (%d,%d) non valide (%d)\n",i,j,sudoku[i][j]); /* ligne */ if (sudoku[i][j]!=0) { for (k=0; k<9; k++) if (k!=j) if (sudoku[i][j]==sudoku[i][k]) { fprintf(stdout,"coefficient (%d,%d) identique à (%d,%d)\n",i,j,i,k); return(0); } /* ligne */ for (k=0; k<9; k++) if (k!=i) if (sudoku[i][j]==sudoku[k][j]) { fprintf(stdout,"coefficient (%d,%d) identique à (%d,%d)\n",i,j,k,j); return(0); } for (ii=inf(i); ii<sup(i); ii++) for (jj=inf(j); jj<sup(j); jj++) if ((ii!=i)&&(jj!=j)) if (sudoku[i][j]==sudoku[ii][jj]) { fprintf(stdout,"coefficient (%d,%d) identique à (%d,%d)\n",i,j,ii,jj); return(0); } } } return(1); } ```