Explicación
Un bitboard , o tablero de bits, representa un conjunto de casillas mediante un número de 64 bits. Un bit es una unidad que solo puede valer 0 o 1. Como el tablero tiene 64 casillas, puede asignarse un bit a cada una.
Máscara de peones blancos
Un bit por casilla
Convención local fija: los indicadores se leen por filas desde hasta , después desde hasta y así hasta y . Un 1 indica pertenencia al conjunto. Conjunto mostrado, peones blancos: 00000000/00000000/00000000/00000000/00000000/00101000/10000001/00000000. El turno y los demás datos FEN no forman parte de esta máscara.
El valor 1 no significa siempre que haya una pieza. Significa que la casilla pertenece al conjunto que ese bitboard describe. Un tablero de bits puede marcar todos los peones blancos, las casillas atacadas por un caballo, las casillas ocupadas o cualquier otro grupo útil.
Máscara de ataques del caballo
Unos sin piezas
Se conserva la misma convención de filas. Conjunto mostrado, casillas atacadas por el caballo blanco de : 00000000/00000000/00101000/01000100/00000000/01000100/00101000/00000000. Los unos describen una propiedad geométrica aunque no exista una pieza sobre esas casillas.
Un suele mantener varios bitboards a la vez. Las operaciones binarias, que combinan directamente ceros y unos, permiten intersectar conjuntos, unirlos, excluir casillas o desplazar patrones con muy pocas instrucciones del procesador. Esto ayuda a generar movimientos y ataques con rapidez.
Intersección de ataque y ocupación
Resultado de A intersección B
Con la convención de filas ya declarada, A es el conjunto de casillas atacadas por la torre blanca de y B es el conjunto de casillas ocupadas por piezas negras. El conjunto mostrado es A intersección B: 00000000/00000000/00000000/00010000/00000000/00000000/00000000/00000001. Los bits activos corresponden a y . El rey negro de pertenece a B, pero no a A.
Lo que no guarda por sí solo
- El tipo de cada pieza, salvo que otros bitboards aporten esa separación.
- A quién le toca mover.
- Los derechos de , es decir, si todavía está permitido el movimiento especial del rey con una torre, y la disponibilidad de captura al paso, una captura especial de peón.
Una posición completa combina esos datos con varios conjuntos. Un bitboard tampoco es un algoritmo de búsqueda como la ; es una forma de representar información.
Confusiones frecuentes
Un bitboard y el tablero completo
Un bitboard describe normalmente un conjunto de casillas. Una posición completa combina varios conjuntos y datos de estado.
Bitboard y bitbase
Un bitboard representa casillas de una posición; una bitbase almacena resultados para muchas posiciones de finales.
Ver términoFuentes
- 1.Bitboards, Chess Programming Wiki
- 2.bitboard.h, Stockfish
