README: target information

This commit is contained in:
2024-03-25 22:41:17 +01:00
parent 1d5f0b7d75
commit f0f12be88d

View File

@ -24,6 +24,25 @@ targets:
- chessNoComputer: The user can play both sides in a GUI. Mainly added for testing the move
generator.
- findMagicNumber: finds Magic Numbers for the magic bitboard.
- moveGenTest: tests the move generator
## Testing
The target moveGenTest with its source in the test directory is a [perft](https://www.chessprogramming.org/Perft).
It works by counting the number of leaf nodes of the move generation with a
certain depth. The results where verified with [stockfish](https://stockfishchess.org/).
## Implementation
The engine is implemented using [bitboards](https://www.chessprogramming.org/Bitboards)
to store the position. A bitboard is an array of 64-Bit unsigned integers. The bitboard contains one
element per piece and square. Each Bit of the integer corresponds to one field
on the board, whether the piece stands there (1) or not (0). This allows use to
use bitwise operations to calculate information we need, really fast.
The move generation of pseudo-legal moves (moves without considering whether the
king is in check) is mostly straightforward. We pre-generate some data in
`src/generateCode/moveConsts.c`, so that we can calculate the moves faster.
# sources