ae6c618b40
Implemented loadFromFen method in Board
2020-08-15 23:25:06 +02:00
db407122a3
Cleaned up and improved Log
...
+ Current log state properties
- Removed Log delegates from Board
2020-08-15 23:25:05 +02:00
50111729ad
Changed event model
...
+ MoveEvent
2020-08-15 23:25:04 +02:00
9d7d84302e
Working on board loading from FEN-encoded string
2020-08-15 23:25:03 +02:00
b6cfb5674c
Implemented LogFrame updating
...
+ Export to SAN in move
+ Updating LogFrame after a move
- Turned EventBus into a singleton
2020-08-15 23:25:03 +02:00
e6d4d37848
Implemented LogFrame, added menu item for opening it
2020-08-15 23:25:02 +02:00
cd01647247
Added event package with EventBus class
2020-08-15 23:25:01 +02:00
84314d931e
Fixed and fully implemented UCI 'info' command parsing
...
- Except for 'currline' which is a feature requested by the GUI and thus
optional
2020-08-15 23:25:01 +02:00
3a76ddc617
Fixed parsing score and after score
2020-08-15 23:25:00 +02:00
e37450c144
UCI refactoring
...
+ Multiple listener support in UCIHandle
+ UCIInfo class
- Moved info and option parsing into the respective classes
- Removed unimplemented UCI callback methods from UCIPlayer
2020-08-15 23:24:59 +02:00
d173fb7851
Simplified EngineUtil and MenuBar
2020-08-15 23:24:59 +02:00
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
6d63c5c358
Created a separate UI package
...
- Renamed Chess to MainWindow
- Moved MainWindow, BoardPanel and TextureUtil into the UI package
2020-08-15 23:24:24 +02:00
9e031f4000
Fixed bugs in move generation, prepared checkmate recognition
2020-08-15 23:24:23 +02:00
df762ce46c
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
2020-08-15 23:24:23 +02:00
8b6b9766e2
Optimized BoardPanel and texture loading
...
- Renamed TextureLoader to TextureUtil
- Moved entire texture handling to TextureUtil
2020-08-15 23:24:22 +02:00
30074f385e
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
2020-08-15 23:24:21 +02:00
4b274e3d0f
Fixed board size issues
...
- TextureLoader does not perform scaling anymore
+ Scaling method in BoardPanel
2020-08-15 23:24:21 +02:00
ab6fa7e52f
Fixed king movements with regards to check detection
2020-08-15 23:24:20 +02:00
11f1795d99
Added check detection
...
+ Position class and implementation (mostly pieces)
+ King position tracking, check detection and utility functions related
to Position in Board
2020-08-15 23:24:19 +02:00
43437d7b7b
Fixed / added positional awareness in pawn movements
2020-08-15 23:24:19 +02:00
1f371ad006
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
2020-08-15 23:24:18 +02:00
21737d6845
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
2020-08-15 23:24:17 +02:00
ff26346623
Added all other pieces and moved them into a separate package
2020-08-15 23:24:16 +02:00
f420d4f9c2
Added pawn rendering
...
+ Initializing pawns in Board
+ Piece rendering in BoardPanel
- Fixed size initialization bug in BoardPanel
+ Pawn class
+ Color property in Piece
2020-08-15 23:24:16 +02:00
138bda75a4
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
2020-08-15 23:24:15 +02:00
0e5a88408a
Added Eclipse project and basic class structure
...
+ Piece icons
+ TextureLoader
+ BoardPanel as a UI for the chess board
+ Chess as a main class
2020-08-15 23:24:14 +02:00