- Add
SquareSet explosionSquares(Move move)method to Atomic class.
- Fix a bug in
Horde.hasInsufficientMaterialthat would cause a stack overflow if only one pawn was left. - Fix insufficient material detection when the Horde has a lone Queen.
- Horde positions where the king is white instead of black are now correctly considered invalid.
- Fix an en passant bug in crazyhouse and atomicchess variants. Now the perft tests cover these variants as well.
- Add the current FEN information to
PlayExceptionmessages.
- Rename
makeLegalMoveparameterisChess960toincludeAlternateCastlingMovesand invert its meaning. It now defaults tofalse.
- Remove the type parameter from
Positionclass. - Update dependencies.
- Fixes castling rights parsing from FEN.
- The FEN parser and writer now preserve syntactically valid castling rights even if there is no matching rook or king. Rename
unmovedRookstocastlingRights.
- Fixes bugs in the PGN parser.
PieceKindis now an enum.
Squareis now an extension type.- Introduce
FileandRanktypes.
- Fix
Position.isLegalthat was generating illegal king moves. - Fix
Position.normalizeMovethat could turn an illegal move into a legal castling move.
- Add Piece.kind, Role.letter and Role.uppercaseLetter getters.
- Migrate SquareSet to an extension type.
- Upgrade fast_immutable_collections to version 10.0.0.
- Rename Rules to Rule and add rule getter to Position
- Fix parsing PGN from smartchess
- Add new
plygetter toPosition PgnNodeDatais no longer specified as immutable- Make
PgnCommentreally immutable
- Add
PgnNodeDataas a bound toPgnNodegeneric type parameter
- rename
HeaderstoPgnHeadersfor consistency PgnGameisn't a const constructor anymore- tweak
parseMultiGamePgnsignature for consistency
- add
makeSanandmakeSanUncheckedmethods to thePositionclass. toSanandplayToSanare now deprecated.
- Initial version.