Explication
Un bitboard , ou échiquier de bits, représente un ensemble de cases de l'échiquier au moyen d'un nombre de 64 bits. Un bit est une unité qui ne peut prendre que la valeur 0 ou 1. Comme un échiquier compte 64 cases, un bit peut être associé à chacune d'elles.
Masque des pions blancs
Un bit par case
Convention locale fixe : les indicateurs se lisent rangée par rangée, de à , puis de à , et ainsi de suite jusqu’à et . Un 1 indique l’appartenance à l’ensemble. Ensemble affiché, pions blancs : 00000000/00000000/00000000/00000000/00000000/00101000/10000001/00000000. Le trait et les autres données FEN ne font pas partie de ce masque.
La valeur 1 ne signifie pas toujours qu'une pièce est présente. Elle indique que la case appartient à l'ensemble décrit par ce bitboard. Un bitboard peut marquer tous les pions blancs, toutes les cases attaquées par un cavalier, toutes les cases occupées ou tout autre groupe utile.
Masque des attaques du cavalier
Des bits à 1 sans pièce
La même convention d’ordre des rangées est conservée. Ensemble affiché, cases attaquées par le cavalier blanc en : 00000000/00000000/00101000/01000100/00000000/01000100/00101000/00000000. Les 1 décrivent une propriété géométrique même si aucune pièce n’occupe ces cases.
Un maintient généralement plusieurs bitboards à la fois. Les opérations bit à bit, qui combinent directement les zéros et les uns, peuvent calculer l'intersection ou l'union d'ensembles, retirer des cases ou décaler des motifs avec très peu d'instructions du processeur. Cela favorise une génération rapide des coups et des attaques.
Intersection de l’attaque et de l’occupation
Résultat de l’intersection de A et B
Avec la convention d’ordre des rangées déjà définie, A est l’ensemble des cases attaquées par la tour blanche en et B l’ensemble des cases occupées par des pièces noires. L’ensemble affiché est l’intersection de A et B : 00000000/00000000/00000000/00010000/00000000/00000000/00000000/00000001. Les bits actifs correspondent à et . Le roi noir en appartient à B, mais pas à A.
Ce qu'un bitboard ne stocke pas à lui seul
- Le type de chaque pièce, sauf si d'autres bitboards assurent cette séparation.
- Le camp au trait.
- Les droits de , c'est-à-dire si le mouvement spécial du roi avec une tour reste autorisé, et la possibilité de prise en passant, c'est-à-dire si un pion peut effectuer cette prise spéciale.
Une position complète combine ces informations avec plusieurs ensembles. Un bitboard n'est pas non plus une méthode de recherche comme l' ; c'est une représentation de l'information.
Confusions fréquentes
Un bitboard et l'état complet de l'échiquier
Un bitboard décrit normalement un ensemble de cases. Une position complète associe plusieurs ensembles à d'autres informations d'état.
Bitboard et bitbase
Un bitboard représente les cases d'une position; une bitbase stocke les résultats de nombreuses positions de finale.
Voir le termeSources
- 1.Bitboards, Chess Programming Wiki
- 2.bitboard.h, Stockfish
