Série en 12 articles
Programmer son moteur d’échecs en Python
Construire un moteur de zéro, article après article : représenter l’échiquier, générer les coups légaux, évaluer une position, chercher le meilleur coup, et finir par le brancher dans une vraie interface. Chaque étape livre du code qui tourne.
La particularité de cette série tient en un mot : vérifiable. La correction du générateur de coups se prouve par perft, en comparant à des valeurs de référence publiées. La force du moteur se mesure contre Stockfish bridé. À chaque article, tu sais si ton code est juste, et de combien tu as progressé.
0 article publié sur 12. Premier article le 13 juillet 2027.
Phase 1 — L'échiquier
Avant de chercher un bon coup, il faut savoir quels coups existent. C'est la partie la moins spectaculaire et celle où se logent tous les bugs.
- Un moteur d'échecs, c'est quoi exactement
- Représenter un échiquier
- Générer les coups légaux
- Perft : prouver que le générateur est juste
Phase 2 — Le premier moteur qui joue
De la partie au hasard au premier programme qui choisit vraiment. À la fin de cette phase, ton moteur bat un débutant.
- Un moteur qui joue au hasard
- Évaluer une position : le matériel
- Minimax : chercher à plusieurs coups
- Négamax et élagage alpha-bêta
Phase 3 — Le rendre fort
L'algorithme est en place. Tout ce qui suit consiste à chercher plus profond dans le même temps, et à évaluer moins bêtement.
- Ordonner les coups
- Approfondissement itératif et gestion du temps
- Quiescence et tables de cases
Phase 4 — Le sortir de ton terminal
Un moteur qui ne parle pas UCI ne sert à rien. Dernière étape : le brancher dans une vraie interface et mesurer honnêtement sa force.
- Parler UCI, et mesurer son Elo