@@ -6,6 +6,48 @@ is more important to get things right, than to be consistent with previous
66versions. Use this changelog to see what changed in a new release, because this
77might include API breaking changes.
88
9+ New in v0.11.0
10+ --------------
11+
12+ Changes:
13+
14+ * **Chess960 ** support and the **representation of castling moves ** has been
15+ changed.
16+
17+ The constructor of board has a new `chess960 ` argument, defaulting to
18+ `False `: `Board(fen=STARTING_FEN, chess960=False) `. That property is
19+ available as `Board.chess960 `.
20+
21+ In Chess960 mode the behaviour is as in the previous release. Castling moves
22+ are represented as a king move to the corresponding rook square.
23+
24+ In the default standard chess mode castling moves are represented with
25+ the standard UCI notation, e.g. `e1g1 ` for king-side castling.
26+
27+ `Board.uci(move, chess960=None) ` creates UCI representations for moves.
28+ Unlike `Move.uci() ` it can convert them in the context of the current
29+ position.
30+
31+ `Board.has_chess960_castling_rights() ` has been added to test for castling
32+ rights that are impossible in standard chess.
33+
34+ The modules `chess.polyglot `, `chess.pgn ` and `chess.uci ` will transparently
35+ handle both modes.
36+
37+ * In a previous release `Board.fen() ` has been changed to only display an
38+ en passant square if a legal en passant move is indeed possible. This has
39+ now also been adapted for `Board.shredder_fen() ` and `Board.epd() `.
40+
41+ New features:
42+
43+ * Get individual FEN components: `Board.board_fen() `, `Board.castling_xfen() `,
44+ `Board.castling_shredder_fen() `.
45+
46+ * Use `Board.has_legal_en_passant() ` to test if a position has a legal
47+ en passant move.
48+
49+ * Make `repr(board.legal_moves) ` human readable.
50+
951New in v0.10.1
1052--------------
1153
0 commit comments