IA de Gomoku (5-en-ligne) en C++, avec moteur de recherche minimax/alpha-bêta et protocole de communication standard.
Telecharger & tester
make && ./pbrain-gomoku-ai (IA de Gomoku respectant le protocole Gomocup)
Gomoku est un projet Epitech (Tek3, module intelligence artificielle) qui consiste a developper un bot autonome pour le jeu Gomoku Narabe (aussi appele Wuzi Qi ou Five in a Row), joue en freestyle sur un plateau (goban) de 20x20 cases, ou la victoire s'obtient en alignant cinq pierres horizontalement, verticalement ou en diagonale. Le langage de developpement est libre, la seule contrainte etant de compiler et de s'executer sur l'environnement de correction (« the dump »).
Le coeur du projet est purement algorithmique : le bot doit implementer sa propre logique de decision (min-max avec elagage alpha-beta, Monte-Carlo Tree Search, apprentissage automatique, ou toute autre approche), sans recourir a des bibliotheques specialisees comme TensorFlow ou scikit-learn — seules les bibliotheques standards du langage sont autorisees. Le bot doit egalement etre compatible avec un protocole de communication standardise (Epitech Mirror), au minimum sur son jeu de commandes obligatoires, afin de pouvoir dialoguer avec le gestionnaire de partie liskvork qui orchestre les matchs.
Les contraintes de performance sont strictes et identiques en evaluation automatisee comme en tournoi : cinq secondes maximum par coup et 70 Mo de memoire par bot. Tout coup illegal entraine une defaite automatique, et l'usage d'une bibliotheque interdite entraine l'elimination pure et simple du programme.
L'evaluation se fait en deux temps : d'abord un test de « jeu pour gagner » ou le bot recoit des plateaux pre-remplis et doit identifier et jouer le coup gagnant evident, puis un test de confrontation directe contre des bots de niveau faible a moyen, ou l'objectif est de maximiser le nombre de victoires. La qualite de l'heuristique d'evaluation de position et la structuration des donnees representant le plateau sont determinantes pour la performance sous contrainte de temps.
Un tournoi optionnel nomme Brawl permet, via un simple fichier cache .brawl a la racine du depot, d'inscrire son IA a un classement Elo bayesien public accessible en ligne, avec historique de parties, systeme de replay et API publique — cette participation n'a toutefois aucun impact sur la notation du projet.
Projet suivant
