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

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 = 0X = 1O = 2WIN_LEN = 5(longueur d’alignement gagnante)
Méthodes principales
reset(): réinitialise la grille et remet le joueur courant à Xvalid(r, c): vérifie qu’un coup est dans la grille et sur une case videplay(r, c): joue un coup si valide, puis change de joueurwinner(): détecte un gagnant (X ou O) dans 4 directionsdraw(): match nul si la grille est pleine et aucun gagnantfallback_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
-
Dépôt GitLab :
https://gitlab.com/ahmad-training-2026/tictactoe/-/tree/main?ref_type=heads -
Portfolio :
https://ahmadaboalola.com/
Auteur
Ahmad Abo-Alola — Student Project (AI Developer Training)