delvh
b25acff367
Working on external engine integration, added extra menu
...
+ EngineUtil for storing engine information
- Changed all UCIListener methods to default
2019-07-23 11:54:43 +02:00
delvh
184c96db8c
Added checkmate and stalemate notification through dialog, changed icon
2019-07-23 11:02:34 +02:00
delvh
309495cfae
Improved BoardOverlay, disabled color swap in natural-vs-natural game
2019-07-23 10:38:19 +02:00
delvh
91962c01e0
Added dynamic color swap button text
2019-07-23 09:59:22 +02:00
delvh
b3710a878f
Implemented color swapping
...
+ swapColor method in Board
+ Button for swapping colors in MainWindow
2019-07-23 09:31:20 +02:00
68d1996bd6
Fixed castling, added castling export to FEN
...
+ isFreePath implementation in Piece
- Removed isFreePath from Bishop, Rook, Queen and King
+ canCastleKingside and canCastleQueenside methods in King
+ Castling rights record in Board + FEN export
+ equals method in Position
+ UCI 'position startpos' command
- Switched to Java 8 compliance for compatibility reasons
2019-07-22 21:40:25 +02:00
efe7ab2b60
First working UCI implementation
...
+ bestmove, position and go command implementations
+ Move initialization from algebraic notation
+ FEN string generation
2019-07-22 14:51:24 +02:00
a68a87962c
Implemented option setting, added UCIOption class
2019-07-22 08:59:13 +02:00
ab54f88a89
Fixed UCI option parsing
2019-07-22 07:29:58 +02:00
b5b7a749d6
Implemented UCI handshake with engine
...
+ UCI game start in MenuBar
+ UCI game creation method in Game
- Fixed double game instance bug after starting a new game
+ Name and author parsing in UCIReceiver
2019-07-21 14:35:14 +02:00
709383e758
Fixed UCI combo GUI type to support multiple predefined values
2019-07-20 06:48:42 +02:00
347eb5d531
Added UCIListener, started working on an implementation
2019-07-20 06:36:56 +02:00
062a5c3075
Added UCIReceiver and UCIListner, implemented a part of the UCI protocol
2019-07-19 22:16:02 +02:00
29e17d90a5
Working on UCI support
...
+ UCIHandle class for communicating with an engine through UCI
+ UCIPlayer class for using an engine within the gui
2019-07-19 08:34:31 +02:00
d8f5f3bbf4
Fixed input listening bug in NaturalPlayer
...
+ disconnect methods in Game and Player
+ NaturalPlayer removes its MouseListener from OverlayComponent after
the disconnect method is called
2019-07-18 15:01:15 +02:00
4dcc9f7ca0
Set white king as MainWindow icon
2019-07-18 11:19:58 +02:00
cfd71af142
Moved game and board creation to Game
2019-07-17 08:26:51 +02:00
fcd8bfb26b
Fixed game state related bugs
2019-07-16 18:24:48 +02:00
cde7f63996
Fixed UI bugs, added move drawing to OverlayComponent
2019-07-16 15:32:02 +02:00
8ea0c7a603
Added alpha-beta pruning threshold to the AI and a configuration dialog
2019-07-16 14:42:10 +02:00
8eda941284
Moved tests in test source folder, replaced GameModeDialog by MenuBar
2019-07-16 11:58:51 +02:00
7a986ab9c4
Added resource folder to class path, implemented proper texture scaling
2019-07-15 18:16:45 +02:00
c245cdb640
Implemented game restarting
...
+ Restarting method in Game
+ Abstract cancelMove method in Player
+ Stopping calculations in AIPlayer when the game has been restarted
2019-07-14 12:03:45 +02:00
58340ca6ac
Added castling, fixed some minor bugs
2019-07-13 11:38:44 +02:00
199d2f06c6
Made application terminate when GameModeDialog is closed
2019-07-12 13:33:34 +02:00
d12b06a1ff
Fixed knight move validation, renamed test
2019-07-12 10:07:02 +02:00
6d98d9a963
Added positional board evaluation
2019-07-11 19:57:54 +02:00
c3a787c3a7
Added move history and pawn promotion
...
+ 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
2019-07-10 18:54:53 +02:00
9cf121699f
Separated board and overlay rendering
...
+ BoardPane class for managing rendering layers
+ OverlayComponent for drawing overlays
- Renamed BoardPanel to BoardComponent
- Simplified calls in the rendering process
2019-07-09 09:20:30 +02:00
3dfc16943f
Added multithreading to AIPlayer for better performance
...
+ MoveProcessor and ProcessingResult classes for handling multithreaded
move calculation
+ Separate package for AIPlayer and its components
2019-07-08 16:44:21 +02:00
3f7a97e953
Fixed some typos
2019-07-08 09:08:10 +02:00
9cfd06230c
Fixed rendering
...
+ Cloning support in Board and Piece
- Using clones for board operations that interfere with rendering
- Fixed repaint calls
+ Unit test for testing board cloning
2019-07-08 06:41:10 +02:00
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