diff --git a/README.md b/README.md index 6b0181a..77c7d0d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,51 @@ # Autour des Sudoku Diverses variations autour des Sudoku. + +## Licence + +Tous les documents se trouvent ici avec la licence +[![Creative Commons CC BY-NC-SA](images/cc-by-nc-sa.png)](https://creativecommons.org/licenses/by-nc-sa/4.0/). + +## 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. + + +## Solveurs de Sudoku + +### 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 images/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](images/sudokufiendish.png) + diff --git a/Solver/README.md b/Solver/README.md deleted file mode 100644 index 3fa0b2c..0000000 --- a/Solver/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# 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) - diff --git a/Solver/bdd/sudoku17.bdd b/bdd/sudoku17.bdd similarity index 100% rename from Solver/bdd/sudoku17.bdd rename to bdd/sudoku17.bdd diff --git a/Solver/bdd/sudokus.bdd b/bdd/sudokus.bdd similarity index 100% rename from Solver/bdd/sudokus.bdd rename to bdd/sudokus.bdd diff --git a/images/cc-by-nc-sa.png b/images/cc-by-nc-sa.png new file mode 100644 index 0000000..79fd9d7 Binary files /dev/null and b/images/cc-by-nc-sa.png differ diff --git a/Solver/sudokufiendish.dot b/images/sudokufiendish.dot similarity index 100% rename from Solver/sudokufiendish.dot rename to images/sudokufiendish.dot diff --git a/Solver/sudokufiendish.png b/images/sudokufiendish.png similarity index 100% rename from Solver/sudokufiendish.png rename to images/sudokufiendish.png diff --git a/Solver/main1.py b/main1.py similarity index 100% rename from Solver/main1.py rename to main1.py diff --git a/Solver/main2.py b/main2.py similarity index 100% rename from Solver/main2.py rename to main2.py diff --git a/Solver/main3.py b/main3.py similarity index 100% rename from Solver/main3.py rename to main3.py diff --git a/Solver/main4.py b/main4.py similarity index 100% rename from Solver/main4.py rename to main4.py diff --git a/Solver/main5.py b/main5.py similarity index 100% rename from Solver/main5.py rename to main5.py diff --git a/Solver/sudoku_grid.py b/sudoku_grid.py similarity index 100% rename from Solver/sudoku_grid.py rename to sudoku_grid.py diff --git a/Solver/sudoku_solver.py b/sudoku_solver.py similarity index 100% rename from Solver/sudoku_solver.py rename to sudoku_solver.py