dartchess 0.13.1
dartchess: ^0.13.1 copied to clipboard
Provides chess and chess variants rules and operations including chess move generation, read and write FEN, read and write PGN.
## 0.13.1
- Introduces
parseMultiGameLazyandPgnLazyGamefor lazy parsing of PGN files. These APIs allow you to iterate through games in a PGN file without parsing the moves (only the headers).
0.13.0 #
Breaking changes:
- Remove
fast_immutable_collectionsdependency. Public APIs that previously returnedIMaporIListnow return standard Dart collections:Position.legalMovesreturnsMap<Square, SquareSet>(wasIMap<Square, SquareSet>)Board.materialCountreturnsByRole<int>/Map<Role, int>(wasIMap<Role, int>)Castles.rooksPositionsreturnsBySide<ByCastlingSide<Square?>>/Map(wasIMap-backed)Castles.pathsreturnsBySide<ByCastlingSide<SquareSet>>/Map(wasIMap-backed)PgnComment.shapesreturnsList<PgnCommentShape>(wasIList<PgnCommentShape>)makeLegalMoves()returnsMap<Square, Set<Square>>(wasIMap<Square, ISet<Square>>)- The
BySide<T>,ByRole<T>, andByCastlingSide<T>typedefs are now aliases for standardMaptypes.
Pockets.valueis removed; usePockets.of(side, role),Pockets.count(role),Pockets.size,Pockets.hasQuality(side), andPockets.hasPawn(side)instead.
The Position class remains completely immutable. Only the return types of some
methods have changed to use standard Dart collections instead of immutable
collections.
0.12.3 #
- Fix
Crazyhouse.isGameOverandCrazyhouse.isCheckmatein positions where all legal moves are drop moves.
0.12.2 #
- Add
SquareSet explosionSquares(Move move)method to Atomic class.
0.12.1 #
- 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.
0.12.0 #
- Fix an en passant bug in crazyhouse and atomicchess variants. Now the perft tests cover these variants as well.
0.11.1 #
- Add the current FEN information to
PlayExceptionmessages.
0.11.0 #
- Rename
makeLegalMoveparameterisChess960toincludeAlternateCastlingMovesand invert its meaning. It now defaults tofalse.
0.10.0 #
- Remove the type parameter from
Positionclass. - Update dependencies.
0.9.2 #
- 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.
0.9.1 #
- Fixes bugs in the PGN parser.
0.9.0 #
PieceKindis now an enum.
0.8.0 #
0.7.1 #
- Add Piece.kind, Role.letter and Role.uppercaseLetter getters.
0.7.0 #
- Migrate SquareSet to an extension type.
0.6.1 #
- Upgrade fast_immutable_collections to version 10.0.0.
0.6.0 #
- Rename Rules to Rule and add rule getter to Position
0.5.1 #
- Fix parsing PGN from smartchess
0.5.0 #
- Add new
plygetter toPosition PgnNodeDatais no longer specified as immutable- Make
PgnCommentreally immutable
0.4.0 #
- Add
PgnNodeDataas a bound toPgnNodegeneric type parameter
0.3.0 #
- rename
HeaderstoPgnHeadersfor consistency PgnGameisn't a const constructor anymore- tweak
parseMultiGamePgnsignature for consistency
0.2.0 #
- add
makeSanandmakeSanUncheckedmethods to thePositionclass. toSanandplayToSanare now deprecated.
0.1.0 #
- Initial version.