+ Log class for move history
+ LoggedMove class with piece captured by the logged move
- Made move reversion easier
+ MoveType for recognizing special moves
+ MoveType determination during move generation and validation
+ BoardPane class for managing rendering layers
+ OverlayComponent for drawing overlays
- Renamed BoardPanel to BoardComponent
- Simplified calls in the rendering process
+ Cloning support in Board and Piece
- Using clones for board operations that interfere with rendering
- Fixed repaint calls
+ Unit test for testing board cloning
+ Game Mode selection dialog
+ Game class for turn management
+ Abstract Player class with NaturalPlayer implementation
- Moved mouse input handling from BoardPanel to NaturalPlayer
+ Methods for generating legal and pseudolegal moves in Piece
+ Implementations of move generation for every piece
+ Highlighting of available moves for the selected piece in BoardPanel
- Split up the move method in Board to move and attemptMove
+ Move class
+ Utility methods in Board
+ isFreePath method in Piece with implementations in every subclass
- Pawn movement is still not fully implemented, including promotion, en
passant and movement over two tiles
+ Simple input handler for testing purposes in BoardPanel
+ Abstract isValidMove method in Piece
+ Coordinate-based implementations of isValidMove in every subclass of
Piece
+ Board class as data model
+ Texture loading code in BoardPanel
+ Abstract Piece class with Type enum
- Moved piece textures into res/pieces
- Changes TextureLoader to work directly with files