Sudoku | L’IA en pratique avec python.
L'IA en pratique avec python.

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