+ 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