Commit Graph

139 Commits

Author SHA1 Message Date
Kai S. K. Engelbart 95773c49ba Merge pull request #16 from CyB3RC0nN0R/f/pgn_save
Implemented game serialization to the PGN format
2019-12-11 07:53:46 +01:00
Kai S. K. Engelbart 3bff5aa56e Fixed setter parameter naming for fullmove number in Log 2019-12-11 07:53:44 +01:00
Kai S. K. Engelbart 0487b47691 Fixed missing end of line chunk in movetext 2019-12-11 07:45:39 +01:00
Kai S. K. Engelbart 39b7ce20b1 Fixed fullmove counters in PGN export 2019-12-10 21:27:06 +01:00
Kai S. K. Engelbart 91512b7774 Including fullmove counters in PGN export 2019-12-08 22:15:29 +01:00
Kai S. K. Engelbart 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
Kai S. K. Engelbart 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
Kai S. K. Engelbart fbf66e6ec1 Created Move#fromSAN, moved implementation from Board 2019-11-19 06:30:53 +01:00
Kai S. K. Engelbart 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
Kai S. K. Engelbart 78bac2e913 Added empty save methods to PGNDatabase and PGNGame 2019-11-07 05:53:28 +01:00
Kai S. K. Engelbart 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
Kai S. K. Engelbart 6bbef7deee Using reflection in FENString, fixed input field in MainWindow 2019-11-05 05:51:41 +01:00
Kai S. K. Engelbart a98ca5e350 Merge pull request #11 from CyB3RC0nN0R/f/pawn_promotion
Added pawn promotion
2019-11-05 05:44:11 +01:00
Kai S. K. Engelbart 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
Kai S. K. Engelbart 37c5f2bd23 Added pawn promotion support to LAN 2019-11-04 18:11:23 +01:00
Kai S. K. Engelbart 02c5e33f10 Removed Type enumeration from Piece class 2019-11-04 05:51:11 +01:00
Kai S. K. Engelbart 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
Kai S. K. Engelbart b5c30d59af Created getters for all fields in Move 2019-10-31 19:09:43 +01:00
Kai S. K. Engelbart 2e672841cd Moved board evaluation logic to MoveProcessor 2019-10-30 17:11:57 +01:00
Kai S. K. Engelbart 1e44234f7e Added RestartEvent to clear move list after game restart 2019-10-30 06:12:31 +01:00
Kai S. K. Engelbart 792f93fc3f Fully implemented castling conditions
Closes #8
2019-10-29 06:24:44 +01:00
Kai S. K. Engelbart 27f37a8cf0 Implemented 'go' command in UCI protocol
Closes #5
2019-10-28 18:54:00 +01:00
Kai S. K. Engelbart 4d943c1a19 Implemented 'position moves' command in UCI protocol 2019-10-28 18:31:18 +01:00
Kai S. K. Engelbart 1d78b8f071 Implemented 'currline' command in UCI protocol 2019-10-28 18:24:26 +01:00
Kai S. K. Engelbart a41a2819da Changed class Javadoc to use @author and @since tags 2019-10-26 07:55:21 +02:00
Kai S. K. Engelbart 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
Kai S. K. Engelbart cbf6aa2013 Moved loadFile method to MainWindow, removed redundancies 2019-10-25 16:58:18 +02:00
Kai S. K. Engelbart 5dbd38d1c0 Removed old FEN string methods, fixed FEN regex 2019-10-25 11:52:48 +02:00
Kai S. K. Engelbart 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
Kai S. K. Engelbart c438dd00cb Enhanced FENString class, added unit test and Board#equals() 2019-10-24 19:54:59 +02:00
Kai S. K. Engelbart 7e8f75a008 Added FENString class 2019-10-24 06:09:16 +02:00
Kai S. K. Engelbart db8fe1c4c0 Renamed FEN string fullmove counter to fullmove number 2019-10-22 21:25:06 +02:00
Kai S. K. Engelbart acb0e63c82 Added PGNDatabaseTest and test file 2019-10-21 21:45:38 +02:00
Kai S. K. Engelbart 2f1ae6e9c8 Created io package, moved IO-related classes 2019-10-20 17:27:52 +02:00
Kai S. K. Engelbart 1f2cedd455 Replaced game configuration dialog by a JOptionPane 2019-10-20 11:51:56 +02:00
Kai S. K. Engelbart 1d19f17c56 Improved PGN parsing, added PGN file loading 2019-10-20 11:22:58 +02:00
Kai S. K. Engelbart 86cf2afc8f Implemented game loading from FEN file 2019-10-18 17:45:13 +02:00
Kai S. K. Engelbart 8b9793611a Added file chooser dialog, renamed GameConfigurationDialog to DialogUtil 2019-10-14 06:31:03 +02:00
Kai S. K. Engelbart 446f895ae1 Replaced LogPanel by a JList inside GamePane with a custom cell renderer 2019-10-13 21:34:22 +02:00
Kai S. K. Engelbart 9839d5a23e Fixed texture scaling method in TextureUtil 2019-10-13 14:37:35 +02:00
Kai S. K. Engelbart 713c95338e Added PGNDatabase and PGNGame classes with support for PGN parsing 2019-10-09 21:03:39 +02:00
Kai S. K. Engelbart 84b3e1503f Renamed SAN-like coordinate notation to LAN, added SAN support to Board 2019-10-09 21:02:22 +02:00
Kai S. K. Engelbart cc0440233b Added ChessException class 2019-10-04 18:18:00 +02:00
Kai S. K. Engelbart 286ea93ee3 Moved MoveNode into a separate file 2019-10-04 10:25:03 +02:00
Kai S. K. Engelbart 994cb84729 Fixed LogPanel to support new log data model 2019-09-23 17:37:42 +02:00
Kai S. K. Engelbart 54e4a0e2e4 Fixed memory leak, improved copy constructors 2019-09-19 21:31:24 +02:00
Kai S. K. Engelbart 1ecafa5485 Fixed Log with respect to variations 2019-09-18 15:00:31 +02:00
Kai S. K. Engelbart c987bfcebb Added variations in Log, added LogTest 2019-09-13 18:13:34 +02:00
Kai S. K. Engelbart 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
Kai S. K. Engelbart 249480724a Refactoring
- Simplified FEN-string generation
- Made GameConfigurationDialog a utility class
2019-09-09 19:05:57 +02:00