README: target information
This commit is contained in:
19
README.md
19
README.md
@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user