Commit Graph

20 Commits

Author SHA1 Message Date
55e9cfb620 Fixed checkmate detection, simplified event handling 2019-07-07 21:07:58 +02:00
dd5170066b Added simple (yet surprisingly effective) AI player
+ AIPlayer class
+ Evaluation method in Board
+ AI vs AI button in GameModeDialog (produces a rendering delay)
2019-07-07 14:37:33 +02:00
73316c6681 Added player management and related UI components
+ Game Mode selection dialog
+ Game class for turn management
+ Abstract Player class with NaturalPlayer implementation
- Moved mouse input handling from BoardPanel to NaturalPlayer
2019-07-07 13:53:57 +02:00
cf41840c5a Improved package structure
- Renamed the piece package into board
- Moved Board, Move and Position into the board package
2019-07-06 18:05:00 +02:00
3edcae660b Implemented checkmate and stalemate detection 2019-07-06 17:37:55 +02:00
612fb5fc9a Created a separate UI package
- Renamed Chess to MainWindow
- Moved MainWindow, BoardPanel and TextureUtil into the UI package
2019-07-06 16:37:42 +02:00
9354a83569 Fixed bugs in move generation, prepared checkmate recognition 2019-07-06 12:42:21 +02:00
8158490431 Added move generation
+ 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
2019-07-05 14:14:48 +02:00
f710b2d6f7 Optimized BoardPanel and texture loading
- Renamed TextureLoader to TextureUtil
- Moved entire texture handling to TextureUtil
2019-07-04 14:58:15 +02:00
32004e0d68 Added tool panel and event system for check notification
+ GameEvent and GameEventListener
+ Check detection and notification in Board and BoardPanel
+ Tool panel in Chess with a restart button
2019-07-03 11:05:20 +02:00
bcef10b330 Fixed board size issues
- TextureLoader does not perform scaling anymore
+ Scaling method in BoardPanel
2019-07-02 22:06:48 +02:00
93ddcd13ee Fixed king movements with regards to check detection 2019-07-02 20:40:28 +02:00
ec3662b506 Added check detection
+ Position class and implementation (mostly pieces)
+ King position tracking, check detection and utility functions related
to Position in Board
2019-07-02 20:07:47 +02:00
e9105fe9eb Fixed / added positional awareness in pawn movements 2019-07-02 15:16:18 +02:00
b9882b43c6 Added block checking to move validation
+ 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
2019-07-02 13:49:36 +02:00
3b1640b49e Added coordinate-based move validation
+ Simple input handler for testing purposes in BoardPanel
+ Abstract isValidMove method in Piece
+ Coordinate-based implementations of isValidMove in every subclass of
Piece
2019-07-01 21:46:30 +02:00
edd0ff1887 Added all other pieces and moved them into a separate package 2019-07-01 19:50:42 +02:00
11834c6411 Added pawn rendering
+ Initializing pawns in Board
+ Piece rendering in BoardPanel
- Fixed size initialization bug in BoardPanel
+ Pawn class
+ Color property in Piece
2019-07-01 19:37:15 +02:00
5abccf82d7 Preparing board implementation and rendering
+ 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
2019-07-01 19:08:37 +02:00
8cc171ceb0 Added Eclipse project and basic class structure
+ Piece icons
+ TextureLoader
+ BoardPanel as a UI for the chess board
+ Chess as a main class
2019-07-01 18:26:43 +02:00