Explicație
Un bitboard reprezintă un ansamblu de câmpuri ale tablei de șah printr-un număr pe 64 de biți. Un bit este o unitate care poate avea numai valoarea 0 sau 1. Deoarece tabla de șah are 64 de câmpuri, fiecărui câmp i se poate atribui câte un bit.
Masca pionilor albi
Un bit pentru fiecare câmp
Convenție locală fixă: indicatorii se citesc pe linii de la la , apoi de la la și tot așa până la și . Un 1 indică apartenența la set. Set afișat, pionii albi: 00000000/00000000/00000000/00000000/00000000/00101000/10000001/00000000. Partea la mutare și celelalte date FEN nu fac parte din această mască.
Valoarea 1 nu înseamnă întotdeauna că pe câmp se află o piesă. Înseamnă că acel câmp aparține ansamblului descris de bitboard. Un bitboard poate marca toți pionii albi, fiecare câmp atacat de un cal, toate câmpurile ocupate sau orice alt grup util.
Masca atacurilor calului
Biți de 1 fără piese
Se păstrează aceeași convenție de ordine a liniilor. Set afișat, câmpurile atacate de calul alb de pe : 00000000/00000000/00101000/01000100/00000000/01000100/00101000/00000000. Biții 1 descriu o proprietate geometrică, chiar dacă pe acele câmpuri nu se află nicio piesă.
Un menține de obicei mai multe bitboard-uri simultan. Operațiile pe biți, care combină direct zerourile și unitățile, pot intersecta ansambluri, le pot reuni, pot elimina câmpuri sau pot deplasa tipare cu foarte puține instrucțiuni ale procesorului. Aceasta permite generarea rapidă a mutărilor și atacurilor.
Intersecția dintre atac și ocupare
Rezultatul A ∩ B
Folosind convenția declarată de ordine a liniilor, A este setul câmpurilor atacate de turnul alb de pe , iar B este setul câmpurilor ocupate de piese negre. Setul afișat este intersecția dintre A și B: 00000000/00000000/00000000/00010000/00000000/00000000/00000000/00000001. Biții activi corespund câmpurilor și . Regele negru de pe aparține lui B, dar nu lui A.
Ce nu stochează singur un bitboard
- Fiecare tip de piesă, dacă alte bitboard-uri nu asigură această separare.
- Partea aflată la mutare.
- Drepturile de , adică dacă mutarea specială a regelui și turnului mai este permisă, și disponibilitatea capturii en passant, adică posibilitatea pionului de a efectua această captură specială.
O poziție completă combină aceste informații cu mai multe ansambluri. De asemenea, un bitboard nu este o metodă de căutare precum , ci o reprezentare a informației.
Confuzii frecvente
Un bitboard și starea completă a tablei
Un bitboard descrie în mod normal un singur ansamblu de câmpuri. O poziție completă combină mai multe ansambluri cu alte informații de stare.
Bitboard și bitbase
Un bitboard reprezintă câmpuri dintr-o singură poziție, iar o bitbase stochează rezultate pentru numeroase poziții de final.
Vezi termenulSurse
- 1.Bitboards, Chess Programming Wiki
- 2.bitboard.h, Stockfish
