Learn2Slither est un projet d'intelligence artificielle où un agent (le serpent) apprend à jouer au jeu Snake en utilisant l'algorithme de Q-learning. Il s'agit d'une version optimisée avec un champ de vision réduit (sur les axes X et Y), un système de récompenses, des pommes vertes et rouges, un replay de parties, et de nombreuses visualisations de données pour suivre l'apprentissage.
Assurez-vous d'utiliser Python 3.12+.
- Clonez le dépôt :
git clone https://github.com/ltuffery/Learn2Slither.git
cd Learn2Slither- Créer un environnement virtuel
python -m venv .venv
source .venv/bin/activate- Installez les dépendances :
pip install -r requirements.txtpython snake playL'entraînement utilise l'algorithme Q-Learning avec une table Q[(state, action)] :
python snake train <filename> [--visual]Cela produit :
data/{filename}.csv: la Q-table sauvegardéedata/rewards.csv: les récompenses par épisodereplay/replay.json: l'historique d'une partie
python snake load <chemin_q_table> [-n <nombre>] [--visual]--load: Pour charger le fichier contenant la Q-table-n: Pour lui faire jouer plusieurs parties (optionnel)--visual: Pour afficher le visuel dans le terminal (optionnel)--step: Pour activer le step by step. Le visual mode est automatiquement activer aussi
Le système de replay lit un fichier .json contenant les états, actions et résultats.
python snake replay <chemin_replay> [episode][episode]: Pour regarder un épisode en particulier sinon ca les lances tous