3 ms·
https://news.ycombinator.com/item?id=39066345 https://news.ycombinator.com/item?id=39066345 You could probably modify this solution, I am already using 3 bits
by thrw21 3y ago
https://news.ycombinator.com/item?id=39066345 https://news.ycombinator.com/item?id=39066345
You could probably modify this solution, I am already using 3 bits for piece type
0-3 rook queen bishop knight
4 Non-moved king (can castle)
5 moved king
6 pawn that moved 2 squares last turn (can be captured using en passant)
7 other pawns
And then a single extra bit to store whose turn it is
- jepler 3y agoinstead of encoding "moved king", encode "moved rook" on each rook. Since a pawn can never be on its home rank, overlap rook (not moved) & pawn (en passant) codes. Now you have a code for "king (to move)" and "king (not to move)". If you use a variable length encoding you can also use different static probabilities for the different ranks, since "rook (not moved)" and "pawn (en passant)" can only appear on certain ranks and only depending on the piece color (well, pawns can't appear on ranks 1 or 8 at all)