Commit Graph

65 Commits

Author SHA1 Message Date
8077aaafdb Implemented en passant 2020-08-15 23:24:58 +02:00
ffcb1efc11 Fixed letter alignment below the board 2020-08-15 23:24:57 +02:00
a101632c7b Added board coordinates 2020-08-15 23:24:57 +02:00
a13cf8d050 Added border around board, changed display order in OverlayComponent 2020-08-15 23:24:56 +02:00
6d85a01fc2 Added naming support in Player and subclasses 2020-08-15 23:24:55 +02:00
20ccb2aeef Added log resetting, disabled resizing in MainFrame 2020-08-15 23:24:55 +02:00
c0479b88b6 Simplified game creation, added new configuration dialog 2020-08-15 23:24:54 +02:00
b99c0f67f0 Fixed engine menu reloading on engine addition 2020-08-15 23:24:53 +02:00
3be4c042bb Added en passant availability logging and FEN string export 2020-08-15 23:24:53 +02:00
686b76ed8a Fixed FEN string export when board is in start position 2020-08-15 23:24:52 +02:00
dec0dc08ad Added tools menu in MenuBar with FEN export menu item 2020-08-15 23:24:51 +02:00
dc67b624ce Moved activeColor, fullmoveCounter and halfmoveClock to Log 2020-08-15 23:24:50 +02:00
5aa48edb93 Added engine info serialization and integration into MenuBar 2020-08-15 23:24:50 +02:00
0a1ab4bab6 Working on external engine integration, added extra menu
+ EngineUtil for storing engine information
- Changed all UCIListener methods to default
2020-08-15 23:24:49 +02:00
e814100589 Added checkmate and stalemate notification through dialog, changed icon 2020-08-15 23:24:48 +02:00
4e008954ad Improved BoardOverlay, disabled color swap in natural-vs-natural game 2020-08-15 23:24:48 +02:00
0e75aae421 Added dynamic color swap button text 2020-08-15 23:24:47 +02:00
2b00116837 Implemented color swapping
+ swapColor method in Board
+ Button for swapping colors in MainWindow
2020-08-15 23:24:46 +02:00
a6fcaee70e 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
2020-08-15 23:24:46 +02:00
46b74a527d First working UCI implementation
+ bestmove, position and go command implementations
+ Move initialization from algebraic notation
+ FEN string generation
2020-08-15 23:24:45 +02:00
660d33d3b3 Implemented option setting, added UCIOption class 2020-08-15 23:24:44 +02:00
d34244b1c3 Fixed UCI option parsing 2020-08-15 23:24:44 +02:00
3581904abc 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
2020-08-15 23:24:43 +02:00
bd91e3125d Fixed UCI combo GUI type to support multiple predefined values 2020-08-15 23:24:42 +02:00
12422d3d31 Added UCIListener, started working on an implementation 2020-08-15 23:24:42 +02:00
2c6b801038 Added UCIReceiver and UCIListner, implemented a part of the UCI protocol 2020-08-15 23:24:41 +02:00
495e784852 Working on UCI support
+ UCIHandle class for communicating with an engine through UCI
+ UCIPlayer class for using an engine within the gui
2020-08-15 23:24:40 +02:00
f9aea34edf Fixed input listening bug in NaturalPlayer
+ disconnect methods in Game and Player
+ NaturalPlayer removes its MouseListener from OverlayComponent after
the disconnect method is called
2020-08-15 23:24:40 +02:00
f89c95850a Set white king as MainWindow icon 2020-08-15 23:24:39 +02:00
f6a578531f Moved game and board creation to Game 2020-08-15 23:24:38 +02:00
a2d479bba0 Fixed game state related bugs 2020-08-15 23:24:38 +02:00
ef8c43be1f Fixed UI bugs, added move drawing to OverlayComponent 2020-08-15 23:24:37 +02:00
d084e00c18 Added alpha-beta pruning threshold to the AI and a configuration dialog 2020-08-15 23:24:36 +02:00
d20fcc10e0 Moved tests in test source folder, replaced GameModeDialog by MenuBar 2020-08-15 23:24:35 +02:00
2f47261848 Added resource folder to class path, implemented proper texture scaling 2020-08-15 23:24:35 +02:00
a3b5531f09 Implemented game restarting
+ Restarting method in Game
+ Abstract cancelMove method in Player
+ Stopping calculations in AIPlayer when the game has been restarted
2020-08-15 23:24:34 +02:00
fe8ae1826e Added castling, fixed some minor bugs 2020-08-15 23:24:33 +02:00
5333210549 Made application terminate when GameModeDialog is closed 2020-08-15 23:24:33 +02:00
0c59c7e540 Fixed knight move validation, renamed test 2020-08-15 23:24:32 +02:00
c7bac23420 Added positional board evaluation 2020-08-15 23:24:31 +02:00
9c19b13785 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
2020-08-15 23:24:31 +02:00
1b7e3b1986 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
2020-08-15 23:24:30 +02:00
e19d91da8f Added multithreading to AIPlayer for better performance
+ MoveProcessor and ProcessingResult classes for handling multithreaded
move calculation
+ Separate package for AIPlayer and its components
2020-08-15 23:24:29 +02:00
666a7ea25c Fixed some typos 2020-08-15 23:24:29 +02:00
8283866d62 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
2020-08-15 23:24:28 +02:00
31c393150b Fixed checkmate detection, simplified event handling 2020-08-15 23:24:27 +02:00
f4b399ae43 Added simple (yet surprisingly effective) AI player
+ AIPlayer class
+ Evaluation method in Board
+ AI vs AI button in GameModeDialog (produces a rendering delay)
2020-08-15 23:24:27 +02:00
4c1d7b77a5 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
2020-08-15 23:24:26 +02:00
e8e040669c Improved package structure
- Renamed the piece package into board
- Moved Board, Move and Position into the board package
2020-08-15 23:24:25 +02:00
7dd5c2e02b Implemented checkmate and stalemate detection 2020-08-15 23:24:25 +02:00