770 B
770 B
Notes on Building Chess Engines
BitBoards
Mapping
Little-Endian Rank-File (LERF) Mapping maps squares to bit offsets (or indexes) from a1 to h8.
+-----------------+
8| 0 0 0 0 0 0 0 0 |
7| 0 0 0 0 0 0 0 0 |
6| 0 0 0 0 0 0 0 0 |
5| 0 0 0 0 0 0 0 0 |
4| 0 0 0 0 0 0 0 0 |
3| 0 0 0 0 0 0 0 0 |
2| 0 0 0 0 0 0 0 0 |
1| 0 0 0 0 0 0 0 0 |
+-----------------+
A B C D E F G H
+-----------------+
8| 1 0 0 0 0 0 0 0 |
7| 1 0 0 0 0 0 0 0 |
6| 1 0 0 0 0 0 0 0 |
5| 1 0 0 0 0 0 0 0 |
4| 1 0 0 0 0 0 0 0 |
3| 1 0 0 0 0 0 0 0 |
2| 1 0 0 0 0 0 0 0 |
1| 1 0 0 0 0 0 0 0 |
+-----------------+
A B C D E F G H
Counting Bit Sets
https://graphics.stanford.edu/%7Eseander/bithacks.html#CountBitsSetParallel