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

#
Tetris

Vous trouverez ci-dessous les instructions et détails sur le jeu du tetris. Le but du jeu étant d’empiler le plus de pièce possibles pour former des lignes complètes afin de les faire disparaitres et gagner des points.

Le jeu présenté ici utilise un réseau de neurones artificiels entrainé grâce à un algorithme d’apprentissage par renforcement (reinforcement learning).

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

Après avoir installé python et poetry, rendez vous dans ce dossier et installez les dépendances du projet:

    poetry install

##
Utilisation

Pour lancer le jeu avec un réseau de neurones déjà entrainé:

    poetry run python main.py

Vous pouvez ajouter une option pour choisir un modèle pré-entrainé différent de celui par défaut (“weights.h5”) avec l’option `-w`.

    poetry run python main.py -w weights2.h5

Pour quitter le jeu, appuyez sur n’importe quelle touche dans la fenètre du jeu, ou appuyez sur Ctrl+c dans le terminal.

En résumé:

    usage: main.py [-h] [-w WEIGHTS]

    The Tetris game

    optional arguments:
      -h, --help            show this help message and exit
      -w WEIGHTS, --weights WEIGHTS
                            Path to weights file to load.

###
Entrainement

Pour entrainer un nouveau réseau de neurones (Attention pour ce projet, il vous faudra probablement un bon GPU pour espérer entrainer le réseau dans un temps acceptable) vous pouvez utiliser le programme `train.py`:

    poetry run python train.py -e 1000 -w weights2.h5

Ici l’option `-e` représente le nombre d’épisodes pendant lequel le réseau doit être entrainé, 10000 étant la valeur par défaut, et `-w` représente le fichier dans lequel les poids synaptiques seront enregistrés à la fin de l’entrainement.

En résumé:

    usage: train.py [-h] [-w WEIGHTS] [-e EPISODES]

    The Tetris game trainer for RL.

    optional arguments:
      -h, --help            show this help message and exit
      -w WEIGHTS, --weights WEIGHTS
                            Path to weights file to save to (default=weights.h5).
      -e EPISODES, --episodes EPISODES
                            Number of episodes to train on (default=10000).