# Solveurs de Sudoku Résolution de grilles de Sudoku programmée en Python. ## Description des fichiers * `sudoku_grid.py` : module définissant une classe `SudokuGrid` pour représenter les grilles de Sudoku. * `sudoku_solver.py` : module définissant une fonction `solve` pour la résolution des grilles de Sudoku. * `main1.py` : script de résolution d'une grille décrite en argument sur la ligne de commande. * `main2.py` : script de résolution d'une grille contenue dans un fichier. Les solutions sont affichées dans le terminal. * `main3.py` : script de résolution de toutes les grilles contenues dans un fichier. Les solutions sont inscrites dans un fichier. * `main4.py` : script de résolution d'une grille décrite sur la ligne de commande, et qui produit une image représentant la recherche des solutions. * `main5.py` : scripy de résolution d'une grille décrite sur la ligne de commande, qui visualise le remplissage progressif de la grille. * `bdd/sudokus.bdd` : un fichier texte contenant la description de 5000 grilles de Sudoku ayant toutes une seule solution. * `bdd/sudoku17.bdd` : un fichier texte contenant la description de 49151 grilles de Sudoku n'ayant que 17 cases remplis et ayant toutes une seule solution. ## Exemples d'utilisation ### Visualiser la recherche de solution avec le script `main4.py` Pour la grille ci-dessous (grille de la ligne 43 (en numérotant à partir de 0) du fichier `bdd/sudokus.bdd`) +-------+-------+-------+ | 2 . . | . 5 . | 8 4 . | | . 1 . | 7 9 . | 5 . . | | . . . | . . 4 | . . . | +-------+-------+-------+ | . 8 1 | . . . | 2 . 9 | | 3 . . | . . . | . . 5 | | 7 . 6 | . . . | 3 1 . | +-------+-------+-------+ | . . . | 9 . . | . . . | | . . 8 | . 2 3 | . 5 . | | . 6 3 | . 1 . | . . 7 | +-------+-------+-------+ après la commande ./main4.py 200050840010790500000004000081000209300000005706000310000900000008023050063010007 sudokufiendish on obtient, outre la solution, deux fichiers `sudokufiendish.dot` et `sudokufiendish.png`décrivant l'arbre de recherche des solutions suivant ![Arbre de résolution d'un sudoku difficile](sudokufiendish.png)