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