From c11557acbe1cec27f5978eeef3f687848f05b2c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Wegrzynowski?= Date: Thu, 7 Jan 2021 11:13:30 +0100 Subject: [PATCH] restructuration arborescence --- README.md | 48 ++++++++++++++++++++ Solver/README.md | 43 ------------------ {Solver/bdd => bdd}/sudoku17.bdd | 0 {Solver/bdd => bdd}/sudokus.bdd | 0 images/cc-by-nc-sa.png | Bin 0 -> 1813 bytes {Solver => images}/sudokufiendish.dot | 0 {Solver => images}/sudokufiendish.png | Bin Solver/main1.py => main1.py | 0 Solver/main2.py => main2.py | 0 Solver/main3.py => main3.py | 0 Solver/main4.py => main4.py | 0 Solver/main5.py => main5.py | 0 Solver/sudoku_grid.py => sudoku_grid.py | 0 Solver/sudoku_solver.py => sudoku_solver.py | 0 14 files changed, 48 insertions(+), 43 deletions(-) delete mode 100644 Solver/README.md rename {Solver/bdd => bdd}/sudoku17.bdd (100%) rename {Solver/bdd => bdd}/sudokus.bdd (100%) create mode 100644 images/cc-by-nc-sa.png rename {Solver => images}/sudokufiendish.dot (100%) rename {Solver => images}/sudokufiendish.png (100%) rename Solver/main1.py => main1.py (100%) rename Solver/main2.py => main2.py (100%) rename Solver/main3.py => main3.py (100%) rename Solver/main4.py => main4.py (100%) rename Solver/main5.py => main5.py (100%) rename Solver/sudoku_grid.py => sudoku_grid.py (100%) rename Solver/sudoku_solver.py => sudoku_solver.py (100%) 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 0000000000000000000000000000000000000000..79fd9d78abe894f23ea3eaae38f151276dc0f0df GIT binary patch literal 1813 zcmV+w2kQ8VP)TPwEGwM@j$X+fP6 zWK?VX6*WIJYSbhqF~-(@wcv;DoA?*JyU)3KujgKKb8ix*l6v5foAcwjxzBme^SIS=(dg6@dNMg8>d3?} z4Ua!Am@1R3k?Re3Xl}_*3(ElthL!|bk$6}TxSovD#?u5PpKZ|Q)+RlDu2x(ppCv^f z#zYmuF$Z&jv9J;ln7}rY>~fE4B!l1rCE1}TSFt=;U?>_A)(X-@>^O~0yHt`V_es9qbe$?ID-YZQZRoT6 zaK`~hBN(zElM7;E8&P4E9i1IiR#s+PcQCf&VTYIt34t}QXe9eJxtQ`y(!`8PGOYN| zo`>YDbZR(tb#>I(*eEKlxgBFVyE{!E3Vp`~MmC z&CSge2n0mMHQLZ8kHy^OP>|wDm1I~lMpmIR})<;WU{YqY&zTT73+ zdvxTMmX=b{n?-c(%FjA-GU3R-XK-ME-ab{Xt6q;MBaV*Xppb^JaA?q6nOrNYwL>yA z8IDg#g>tXJvTDW9;>s%3db3$XjAci|55v2_`Odq7fODUGN;lI7=N_g*XH!~ z_KLRJ>i0}>bOb{mT`it79l0USK2;#K5unk|dmz~g*;$pBmkTim;kd^3=RS@!KsfiMlL;KFV>%u7QB_ry zsgpCaUOUbS1(wQMiOMnof^PoSM5oH$vczG%MQy#^B5Kv?)8cz~*I)LW9AaPO75IVV z?T|^6?dY|<18@(-#H(wo8o{@2-_*h)y98T>SMpW{AsnW`>%*$E#Q}!V`hUE1NyD-X z(_SUPIB;;NX6K;6T9?g1$a%6U#9IvqI%dZPf-m3+{UkIBY( z_An0`OR0kfQkR@nT%o0PO6rz4-31+kGgrMar~rb`~lZ42M|< z&NB#xB^w+6W#b2kC zHuPakF2o*{1?Q{5RzBg-2tKKKRAmv~I3eQbLbU$@FKLMXT;pYr00000NkvXXu0mjf DuP1EV literal 0 HcmV?d00001 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