Skip to content

LLM vs LLM — Tic Tac Toe (10x10 / 5-in-a-row)

Game Diagram

Objectif

Créer un moteur de jeu Tic Tac Toe sur une grille 10×10 avec une condition de victoire de 5 pions alignés (horizontale, verticale, diagonales). Ce moteur est conçu pour être réutilisable : LLM vs LLM, tests de stratégies, ou ajout d’une interface (CLI / Web) plus tard.


Règles du jeu

  • Deux joueurs : X et O
  • Grille : 10 × 10
  • Tour par tour : chaque joueur place un pion dans une case vide
  • Victoire : 5 pions alignés
  • Match nul : grille pleine sans gagnant

Structure du projet

  • game.py : moteur du jeu (grille, coups, victoire, match nul)

Fonctionnement du moteur (Game)

Constantes

  • EMPTY = 0
  • X = 1
  • O = 2
  • WIN_LEN = 5 (longueur d’alignement gagnante)

Méthodes principales

  • reset() : réinitialise la grille et remet le joueur courant à X
  • valid(r, c) : vérifie qu’un coup est dans la grille et sur une case vide
  • play(r, c) : joue un coup si valide, puis change de joueur
  • winner() : détecte un gagnant (X ou O) dans 4 directions
  • draw() : match nul si la grille est pleine et aucun gagnant
  • fallback_move() : stratégie simple (choisit une case proche du centre)

Exemple d’utilisation

from game import Game, X, O

g = Game(size=10)

g.play(5, 5)  # X
g.play(5, 6)  # O

w = g.winner()
if w == X:
    print("X gagne")
elif w == O:
    print("O gagne")
elif g.draw():
    print("Match nul")
else:
    print("Partie en cours")

Détection de victoire (idée)

Pour détecter 5 pions alignés, on vérifie 4 directions à partir de chaque case : - Horizontal - Vertical - Diagonale - Anti-diagonale

Le moteur compte les pions consécutifs et compare avec WIN_LEN.


Ce que j’ai appris

  • Représenter une grille et un état de jeu en Python
  • Vérifier la validité d’actions (mouvements)
  • Détecter une condition de victoire dans plusieurs directions
  • Construire une stratégie simple (fallback) pour un agent automatique

Améliorations possibles

  • Ajouter un mode LLM vs LLM (agents automatiques)
  • Ajouter un mode Human vs Bot
  • Ajouter une interface utilisateur (CLI / Web)
  • Ajouter des logs / replays (enregistrer une partie)

Liens


Auteur

Ahmad Abo-Alola — Student Project (AI Developer Training)