Sudoku/README.md

2.3 KiB

Autour des Sudoku

Diverses variations autour des Sudoku.

Licence

Tous les documents se trouvent ici avec la licence Creative Commons CC BY-NC-SA.

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.pngdécrivant l'arbre de recherche des solutions suivant

Arbre de résolution d'un sudoku difficile