- Un moteur d’échecs léger fonctionnant dans environ 2 KB, capable de jouer une partie complète dans un ensemble de règles limité
- Il intègre des algorithmes clés comme un plateau mailbox de 120 cases, la recherche Negamax et l’élagage alpha-bêta
- Il utilise une évaluation basée uniquement sur la valeur des pièces (material-only eval) et un ordre des coups privilégiant les captures (move ordering)
- Le roque, la prise en passant, la promotion, la répétition et la règle des 50 coups sont non implémentés
- Il atteint un niveau d’environ 1170 à 1200 Elo et se distingue comme un exemple de moteur d’échecs implémenté en moins de 2 KB de code
Aperçu du projet
- Sameshi est un moteur d’échecs minimaliste prenant en charge un ensemble de règles limité, dont la taille totale du code n’est que d’environ 1,95 KB
- Le fichier principal est
sameshi.h, et une version plus lisible est incluse dans readable/sameshi.h
- Le dépôt GitHub fournit également
main.c, Makefile, .gitignore, etc.
- Une vidéo de démonstration est disponible sur YouTube, ce qui permet de voir le moteur en fonctionnement réel
Structure principale (core)
- Le moteur se compose des six éléments principaux suivants
- Structure de plateau mailbox de 120 cases
- Algorithme de recherche Negamax
- Élagage alpha-bêta
- Évaluation basée uniquement sur la valeur des pièces (material-only evaluation)
- Ordre des coups privilégiant les captures (move ordering)
- Validation complète des coups légaux, incluant échec, mat et pat
- Les fonctionnalités non implémentées indiquées explicitement sont le roque, la prise en passant, la promotion, la répétition et la règle des 50 coups
Performances (strength)
- Son niveau est estimé à environ 1170 Elo, avec un intervalle de confiance à 95 % de 1110 à 1225 Elo
- La mesure est basée sur les résultats de 240 parties contre Stockfish (niveau 1320 à 1600)
- Les tests ont été réalisés avec une profondeur fixe de 5, un maximum de 60 demi-coups et des règles limitées
Caractéristiques techniques
- La taille totale du code est inférieure à 2 KB, avec 98,6 % en C et 1,4 % en Makefile
- Le projet pousse au maximum la compacité et l’efficacité algorithmique pour implémenter la logique des échecs avec un minimum de code
- Il est classé dans les thèmes chess-engine, chess et demoscene
État du dépôt
- Le dépôt GitHub compte 143 étoiles et 5 forks
- Les sections Issues, Pull requests, Projects et Security sont toutes vides
- La description du dépôt est résumée ainsi : « a ~1200 Elo chess engine that fits within 2KB »
Aucun commentaire pour le moment.