Sudoku
Vous trouverez ci-dessous les instructions et détails sur le jeu du sudoku. Le but du jeu étant de remplir la grille du sudoku avec les chiffres 1 à 9 chacun présent une et une seule fois dans chaque ligne, colonne et bloc.
Le jeu est présenté avec deux AI différentes, l’une avec une recherche classique et l’autre avec un algorithme génétique.
Installation
Pour installer l’application, commencez par copier le dépot du livre (AI-book sur github), soit en recupérant l’archive zip depuis github, soit à l’aide de l’outil git:
git clone https://github.com/iridia-ulb/AI-book
Puis, accedez au dossier:
cd Sudoku
Après avoir installé python et poetry, rendez vous dans ce dossier et installez les dépendances du projet:
poetry install
Utilisation
Vous pouvez ensuite lancer le jeu dans l’environnement virtuel nouvellement créé. Le jeu en mode recherche se lance comme ceci:
poetry run python main.py -f sudokus/sudoku1.txt -a search
Sélection de l’algorithme
Pour selection l’algorithme à utiliser dans le jeu, changez l’option -a
dans la ligne de commande. Cette option peut prendre 2 valeurs, search
pour l’algorithme de recherche ou genetic
pour l’algorithme génétique.
Une fois lancé, vous pouvez jouer vous même avec la grille en entrant les chiffres en utilisant à votre clavier et votre souris; ou alors lancer l’IA en appuyant sur la barre espace.
En résumé:
usage: main.py [-h] [-a {search,genetic}] [-f FILE]
Launch the sudoku game
optional arguments:
-h, --help show this help message and exit
-a {search,genetic}, --algorithm {search,genetic}
Choose the algorithm to execute
-f FILE, --file FILE Sudoky instance to solve
Grille personnalisée
Dans cette ligne de commande, l’option -f
, represente l’instance du sudoku à résoudre, par defaut, on utilise une instance contenue dans le fichier sudokus/sudoku1.txt
. Vous trouverez d’autres instances à tester dans le fichier sudokus/sudokus.txt
.
Les fichiers doivent être formatés tels que la grille du sudoku à remplir est constituée d’une serie de chiffre sur une ligne, en lisant la grille de gauche à droite et de haut en bas, et en remplaçant les espaces libres par des 0.
Par exemple, le fichier contenant:
200307801000200070000609030070005620900000507600000009001000000000002980000708002
représente la grille suivante: