Aller au contenu principal
sports_esports Lab Canvas 2D Alpha-bêta Évaluation heuristique Clic · tactile

Puissance 4 — une IA alpha-bêta à profondeur limitée en Canvas 2D

Le grand classique de l'alignement, réécrit from scratch en Canvas 2D avec une IA sérieuse : là où l'arbre de jeu est trop vaste pour être exploré en entier, elle combine un élagage alpha-bêta du minimax, une évaluation heuristique par fenêtres de 4 et un ordonnancement des coups du centre vers les bords. Détection des alignements gagnants, contrôles clic et tactile. Zéro dépendance.

Clic ou tap sur une colonne pour y lâcher un jeton Espace : rejouer

Un jeu bien plus profond qu'il n'y paraît

Puissance 4 se joue sur une grille de 7 colonnes et 6 rangées : on y laisse tomber des jetons à tour de rôle, le premier à en aligner quatre — horizontalement, verticalement ou en diagonale — l'emporte. La règle est enfantine, mais l'arbre des parties possibles est colossal : plus de quatre milliards de positions. Au morpion 3×3, je pouvais explorer l'intégralité de cet arbre et garantir un jeu parfait. Ici, c'est hors de portée : il faut une IA qui décide bien sans tout voir.

L'élagage alpha-bêta : ignorer les branches inutiles

L'IA repose sur le minimax — elle maximise son propre score en supposant que l'adversaire minimisera le sien — mais accéléré par l'élagage alpha-bêta. L'idée est simple et puissante : pendant l'exploration, je conserve deux bornes, la meilleure valeur déjà garantie pour chaque camp. Dès qu'un coup prouve qu'une branche ne pourra jamais battre une option déjà trouvée ailleurs, j'arrête de l'explorer — l'adversaire ne s'y aventurerait de toute façon pas. On coupe ainsi des pans entiers de l'arbre sans jamais changer le coup finalement choisi : le résultat est identique au minimax complet, pour une fraction du calcul.

Une évaluation heuristique à profondeur limitée

Même élagué, l'arbre reste trop vaste pour être parcouru jusqu'au bout. Je limite donc la recherche à quelques coups d'anticipation, puis j'estime la valeur des positions atteintes par une heuristique. Je fais glisser une fenêtre de quatre cases sur toute la grille et je compte, dans chacune, les alignements en germe : deux jetons partagent un peu de valeur, trois beaucoup, et une menace adverse de trois pèse lourd pour forcer la défense. J'ajoute une préférence pour la colonne centrale, par où passent le plus d'alignements. Cette note résume une position que je n'ai pas le temps d'explorer entièrement — c'est tout l'art des jeux qu'on ne peut pas « résoudre » comme le morpion.

L'ordonnancement des coups, qui décuple l'élagage

L'efficacité de l'alpha-bêta dépend de l'ordre dans lequel on examine les coups : plus le meilleur est testé tôt, plus les bornes se resserrent vite et plus on élague. J'examine donc les colonnes du centre vers les bords, car les coups centraux sont statistiquement les plus forts. Ce simple tri, presque gratuit, permet d'explorer plus profondément à budget de calcul égal — l'IA « voit » plus loin sans travailler davantage.

Le bon algorithme pour le bon budget

Ce Puissance 4 illustre un arbitrage que je retrouve sur les vrais projets : quand l'espace des possibles explose, la solution n'est pas la force brute mais la combinaison d'une exploration ciblée (alpha-bêta), d'une estimation pertinente (heuristique) et d'un ordre de traitement bien choisi. Savoir jusqu'où pousser le calcul, et à partir de quand une bonne approximation vaut mieux qu'une exactitude inaccessible, c'est exactement le type de décision d'ingénierie que j'apporte à vos systèmes : un résultat fiable, réactif et calibré sur l'enjeu réel.

Photo d'Emmanuel BALLERY, fondateur de x10

À propos de l'auteur

Emmanuel BALLERY est le fondateur de x10 solutions. Ces petits jeux sont surtout un plaisir de développeur, codés le week-end — pas une vitrine de mes missions, qui sont bien plus exigeantes. J'y soigne quand même la performance et la lisibilité, par habitude.

Voir plus arrow_forward
rocket_launch

Un vrai projet en tête ?

Ce petit jeu m'amuse, mais il ne dit pas grand-chose de mon métier : mes missions sont bien plus complexes. Si vous avez une application à concevoir ou à fiabiliser, c'est là que je suis vraiment utile.

Discuter de mon projet arrow_forward