Neutreeko

Un jeu de plateau abstrait à deux joueurs, sur lequel j'ai commencé à expérimenter l'apprentissage par renforcement. Vous pouvez affronter l'IA directement dans votre navigateur.

Prototype · en cours

Projet en cours

J'ai commencé ce projet personnel sur mon temps libre et je n'y ai encore consacré que peu de temps : c'est un premier jet, encore loin d'une version aboutie. Il me sert surtout à apprendre, en particulier sur les réseaux de neurones et l'apprentissage par renforcement. Pour l'instant, l'agent entraîné perd face à la recherche minimax la plus simple.

Voir les prochaines étapes

Partie · vous contre l'IA

Prototype

Vous0

Nuls0

IAIntermédiaire0

À vous : choisissez un de vos pions verts.

Niveau de l'IA
Qui commence ?
  • Vos pions
  • Pions de l'IA
  • Dernier coup

Règles

Comment jouer

  1. Glisser jusqu'au bout

    À votre tour, déplacez un de vos trois pions dans l'une des huit directions. Il glisse en ligne droite jusqu'au bord du plateau ou jusqu'au pion suivant : impossible de s'arrêter en chemin.

  2. Aligner ses trois pions

    Le premier joueur qui place ses trois pions côte à côte, en ligne, en colonne ou en diagonale, gagne la partie.

  3. Partie nulle

    Si la même position revient trois fois, la partie est déclarée nulle.

Cliquez sur un de vos pions verts, puis sur une case marquée d'un point. Au clavier : les flèches pour parcourir le plateau, Entrée pour choisir, Échap pour annuler.

Sous le capot

Trois adversaires, trois approches

Le jeu original est écrit en Python. Pour le site, la logique du jeu et l'inférence du réseau de neurones ont été portées en JavaScript, puis vérifiées contre la version Python sur 120 positions de test. Tout tourne dans votre navigateur : aucune donnée n'est envoyée.

Niveau 1

Débutant

Réseau DQN seul

Un réseau de neurones (75 → 128 → 64 → 24) entraîné par Deep Q-Learning. Il joue le coup qu'il estime le meilleur, sans anticiper la suite. Encore en apprentissage, c'est l'adversaire le plus facile.

Niveau 2

Intermédiaire

Réseau DQN + garde-fou

Le même réseau, encadré par deux règles écrites à la main : jouer le coup gagnant quand il existe, et écarter les coups qui offrent la victoire au tour suivant.

Niveau 3

Expert

Recherche minimax alpha-bêta

Aucun apprentissage : une recherche qui anticipe quatre demi-coups et évalue les positions selon le rapprochement et l'alignement des pions. C'est la référence que l'agent doit apprendre à battre.

Mesures indicativesVersion actuelle
Débutant contre minimax à 1 demi-coup
0 victoire, 37 défaites et 3 nuls sur 40 parties
Intermédiaire contre minimax à 1 demi-coup
18 victoires, 20 défaites et 2 nuls sur 40 parties
Expert contre minimax à 2 demi-coups
20 victoires sur 20 parties

Duels entre programmes, en alternant le joueur qui commence.

Prochaines étapes

Quelques pistes que j'aimerais explorer au fil de mon apprentissage :

  • l'entraîner contre la recherche minimax, à des profondeurs croissantes, plutôt que seulement contre lui-même ;
  • exploiter les huit symétries du plateau pour multiplier les données d'entraînement ;
  • associer le réseau à une recherche arborescente (MCTS, à la manière d'AlphaZero) pour qu'il anticipe plusieurs coups.

Objectif : battre la recherche minimax sans garde-fou écrit à la main.

Code source

Le code est sur GitHub

Moteur du jeu, entraînement de l'agent DQN et recherche minimax : tout est dans le dépôt.