Commit Graph

134 Commits

Author SHA1 Message Date
44f91591b4 Implemented saving to PGN file
+ copyVariations parameter in copy constructors of Board and Log

This procedure still required work in the form of efficiently rewinding
the board to the first position for SAN move extraction and shortening
SAN moves to the smallest possible representation.
2019-12-06 23:54:11 +01:00
6af213ed4f Working on SAN serialization of moves
+ SAN generation for castling moves
+ Appending promotion piece symbol in pawn promotion SAN

+ Asking the user to view a generated PGN file
2019-11-24 21:31:32 +01:00
fbf66e6ec1 Created Move#fromSAN, moved implementation from Board 2019-11-19 06:30:53 +01:00
6360a8a4ba Added a PGN file saving routine
+ showFileSaveDialog in DialogUtil
+ Javadoc in Log and PGNDatabase
+ "Save game file" button in MenuBar
+ saveFile method in MainWindow
+ Formatting and result tag in PGNGame tag pair serialization
2019-11-08 15:22:12 +01:00
78bac2e913 Added empty save methods to PGNDatabase and PGNGame 2019-11-07 05:53:28 +01:00
44f6a4b9b8 Fixed color switching button
* Renamed RestartEvent to GameStartEvent
* Moved event trigger to Game
* Renamed GameState to BoardState
* Added BoardState instance to MoveEvent
* Disabling the color switching button when a checkmate or stalemate is
reached

Fixes #1
2019-11-06 19:52:52 +01:00
6bbef7deee Using reflection in FENString, fixed input field in MainWindow 2019-11-05 05:51:41 +01:00
a98ca5e350 Merge pull request #11 from CyB3RC0nN0R/f/pawn_promotion
Added pawn promotion
2019-11-05 05:44:11 +01:00
15cdf00eb1 Added pawn promotion selection
* Letting a NaturalPlayer select the promotion piece with a combo box
* Optimized reflection use in PawnPromotion
* Changed toString method of Move to use LAN

Closes #9
2019-11-05 05:41:26 +01:00
37c5f2bd23 Added pawn promotion support to LAN 2019-11-04 18:11:23 +01:00
02c5e33f10 Removed Type enumeration from Piece class 2019-11-04 05:51:11 +01:00
28939f0471 Implemented proper pawn promotion
* Moved move execution and reversion to the Move class
* Removed Move.Type enumeration
* Added Move subclasses Castling, EnPassant and PawnPromotion
* Generating all four possible pawn promotions in the Pawn class
* Temporarily removed special move support from NaturalPlayer
2019-11-03 15:46:08 +01:00
b5c30d59af Created getters for all fields in Move 2019-10-31 19:09:43 +01:00
2e672841cd Moved board evaluation logic to MoveProcessor 2019-10-30 17:11:57 +01:00
1e44234f7e Added RestartEvent to clear move list after game restart 2019-10-30 06:12:31 +01:00
792f93fc3f Fully implemented castling conditions
Closes #8
2019-10-29 06:24:44 +01:00
27f37a8cf0 Implemented 'go' command in UCI protocol
Closes #5
2019-10-28 18:54:00 +01:00
4d943c1a19 Implemented 'position moves' command in UCI protocol 2019-10-28 18:31:18 +01:00
1d78b8f071 Implemented 'currline' command in UCI protocol 2019-10-28 18:24:26 +01:00
a41a2819da Changed class Javadoc to use @author and @since tags 2019-10-26 07:55:21 +02:00
40d80fdc12 Merge pull request #7 from CyB3RC0nN0R/feature/io
Refined IO functionality, fixed FEN string serialization and deserialization
2019-10-25 17:01:55 +02:00
cbf6aa2013 Moved loadFile method to MainWindow, removed redundancies 2019-10-25 16:58:18 +02:00
5dbd38d1c0 Removed old FEN string methods, fixed FEN regex 2019-10-25 11:52:48 +02:00
4857b48e4e Moved castling right logging to Log
* Removed move counter from Piece
* Added castling right array to MoveNode and Log
* Removed castling right map from Board
* Added castling right serialization and deserialization to FENString
* Modified LogTest
2019-10-25 11:34:07 +02:00
c438dd00cb Enhanced FENString class, added unit test and Board#equals() 2019-10-24 19:54:59 +02:00
7e8f75a008 Added FENString class 2019-10-24 06:09:16 +02:00
db8fe1c4c0 Renamed FEN string fullmove counter to fullmove number 2019-10-22 21:25:06 +02:00
acb0e63c82 Added PGNDatabaseTest and test file 2019-10-21 21:45:38 +02:00
2f1ae6e9c8 Created io package, moved IO-related classes 2019-10-20 17:27:52 +02:00
1f2cedd455 Replaced game configuration dialog by a JOptionPane 2019-10-20 11:51:56 +02:00
1d19f17c56 Improved PGN parsing, added PGN file loading 2019-10-20 11:22:58 +02:00
86cf2afc8f Implemented game loading from FEN file 2019-10-18 17:45:13 +02:00
8b9793611a Added file chooser dialog, renamed GameConfigurationDialog to DialogUtil 2019-10-14 06:31:03 +02:00
446f895ae1 Replaced LogPanel by a JList inside GamePane with a custom cell renderer 2019-10-13 21:34:22 +02:00
9839d5a23e Fixed texture scaling method in TextureUtil 2019-10-13 14:37:35 +02:00
713c95338e Added PGNDatabase and PGNGame classes with support for PGN parsing 2019-10-09 21:03:39 +02:00
84b3e1503f Renamed SAN-like coordinate notation to LAN, added SAN support to Board 2019-10-09 21:02:22 +02:00
cc0440233b Added ChessException class 2019-10-04 18:18:00 +02:00
286ea93ee3 Moved MoveNode into a separate file 2019-10-04 10:25:03 +02:00
994cb84729 Fixed LogPanel to support new log data model 2019-09-23 17:37:42 +02:00
54e4a0e2e4 Fixed memory leak, improved copy constructors 2019-09-19 21:31:24 +02:00
1ecafa5485 Fixed Log with respect to variations 2019-09-18 15:00:31 +02:00
c987bfcebb Added variations in Log, added LogTest 2019-09-13 18:13:34 +02:00
3941a75c91 Changed unit test package structure
- Changed unit test package structure to match src
- Refactored PositionTest
+ TestToString method in PositionTest
2019-09-10 21:15:31 +02:00
249480724a Refactoring
- Simplified FEN-string generation
- Made GameConfigurationDialog a utility class
2019-09-09 19:05:57 +02:00
216877b76b Added LogPanel to GamePane 2019-09-09 06:14:37 +02:00
19712a2bb7 Refactoring and documentation, improved FEN integration
+ Adding a new game when loading a FEN string
+ Loading multiple FEN files with drag and drop
2019-09-08 21:37:47 +02:00
08ac0ac114 Fixed frozen game after adding a new one 2019-09-06 13:24:58 +02:00
de9cd05602 Opening the new tab after starting a game 2019-09-01 18:57:31 +02:00
3b73cd1efb Added creation of new game tabs
- Switched to GridBagLayout in GamePane
- New games created in MenuBar are appended to the tabbed pane in
MainWindow
+ LogPanel class for displaying the game log inside a GamePane
- Removed LogFrame in favor of LogPanel
2019-09-01 12:45:06 +02:00