Sudoku/Solver/README.md

44 lines
2.1 KiB
Markdown

# 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)