Releases: josephlou5/alicechess
Releases · josephlou5/alicechess
v3.0.0
- Fixed bug where castles and en passants were not registering
- The special moves were being saved according to the position of the piece, but were being accessed according to the id of the piece.
- Moved castling ability logic to
GameState
rather than per-piece (#1)- The ability of the FEN string to exactly regenerate a board state implies that the castling ability for a color should be saved at the game level, not the piece level.
- This change also replaced the
has_moved
property ofPiece
with theis_at_start_pos()
method.
v2.5.0
- Cached move calculation for repeating board states
- Set required Python version back to Python 3.11
- The code uses
typing.Self
, which was introduced in Python 3.11. For type hint reasons, we will not remove it, and so the minimum required version will have to be Python 3.11. - Since this change broke v2.4.0, it has been yanked.
- The code uses
v2.3.0
- Improved debug printing for windowed games (and added ability to toggle debug)
- Added keyboard actions to the window
v2.2.0
- Added command-line parsing to allow launching a game between builtin players
- Added threefold repetition rule
- Tweaked castling and en passant abilities
- According to the linked rules (should have read it thoroughly!), there were some potentially incorrect moves (either missing or unnecessarily present) that could have been generated.
- Tweaked possible move calculations: move must be valid on current board, but not necessarily on both boards
- According to the linked rules (should have read it thoroughly!!!), a piece may teleport into a position to block check, since the move was valid on the board it was on (the king was not in check on that board), and the move is legal because the king is no longer in check.
v2.2.1
(I forgot to update the readme with the new command-line arguments, but changes for v2.3.0 were already committed by the time I did. Please see this compare for the relevant commits for v2.2.1.)
- Updated readme for new command-line arguments
v2.1.0
- Updated
of()
function to use any iterable - Added "Pause" button for window games with no human players
- Made window buttons have the proper width for the used font
v2.0.0
- Removed test file (wasn't supposed to be published)
- Added
__all__
tuples to each file - Added absolute imports (previous version wasn't even working)
v1.0.1
- Fixed documentation link in readme
- Added
__version__.py
v1.0.0
Initial release