A chess engine written in go
For the board representation I'm using 8 bitboards, 6 for the pieces and 2 for colors.
Other than this I'm storing WhiteToPlay
and castling rights as bits inside of Flags
which is a uint16
I'm storing EnPassantSquare
as a uint8
.
At last I'm storing move count HalfMoveClock
and FullMoveCount
as uint16
separately.
The complete board representation takes 72 bytes with 8-byte alignment.
- implement uci
- create legal moves generator