Le Sudoku
Guide pratique : Le Sudoku. Recherche parmi 300 000+ dissertationsPar mokhtar1991 • 15 Avril 2013 • Guide pratique • 430 Mots (2 Pages) • 612 Vues
Le sudoku se joue a un seul joueur. Le but est de remplir une grille 9 9 avec des chires
compris entre 1 et 9 en respectant les 3 regles suivantes :
{ Tous les chires doivent ^etre presents une seule fois sur chaque ligne.
{ Tous les chires doivent ^etre presents une seule fois sur chaque colonne.
{ Tous les chires doivent ^etre presents une seule fois sur chaque sous carre.
Le carre 9 9 est constitue de 9 sous carres 3 3. Les fonctions suivantes permettrons a
concevoir un programme structure.
1 Primitives
1. Ecrire la procedure
void charger_grille (int grille[9][9]) permettant a l'utilisateur d'initialiser la
grille.
2. Ecrire la fonction
void affiche(int grille[9][9]) qui ache la grille Sudoku a l'ecran.
3. Ecrire la fonction
int dans_ligne(int grille[9][9], int i, int n) qui prendra la valeur vrai (1) si
le chire n est deja present dans la i eme ligne de la grille.
4. Ecrire la fonction
int dans_colonne(int grille[9][9], int j, int n) qui prendra la valeur vrai (1)
si le chire n est deja present dans la jeme colonne de la grille.
5. Ecrire la fonction
int dans_sous_carre(int grille[9][9], int i, int j, int n) qui prendra la va-
leur vrai (1) si le chire n est deja present dans le sous carre contenant la case [i][j].
6. Ecrire la fonction
void jouer(int grille[9][9], int i, int j,int n) qui remplacera le chire n dans
la case [i][j] a condition que le nouveau chire respecte les trois regles mentionnees au-
dessus.
7. Ecrire la fonction
int* chiffres_possibles(int grille[9][9], int i, int j) qui donnera la liste de
tous les chires permis (ceux qui respectent les 3 regles) pour la case [i][j] .
8. Ecrire la fonction
void seul_chiffre(int grille[9][9]) qui cherchera toutes les cases pour lesquelles
il n'y a qu'un seul chire permis, ensuite elle aectera la valeur du chire dans la case
correspondante.
9. Ecrire la fonction int c_est_fini(int grille[3][3]) qui prendra la valeur 1 s'il ne
reste plus de case libre dans la grille et 0 dans le cas contraire.
1
2 Methode avancee
Cette partie
...