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
|
- chessNoComputer: The user can play both sides in a GUI. Mainly added for testing the move
|
||||||
generator.
|
generator.
|
||||||
- findMagicNumber: finds Magic Numbers for the magic bitboard.
|
- 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
|
# sources
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user