Commit Graph

139 Commits

Author SHA1 Message Date
d34fe05cc6
Merge pull request #16 from CyB3RC0nN0R/f/pgn_save
Implemented game serialization to the PGN format
2019-12-11 07:53:46 +01:00
d0cfa4c1ff Fixed setter parameter naming for fullmove number in Log 2019-12-11 07:53:44 +01:00
3e5d584e6f Fixed missing end of line chunk in movetext 2019-12-11 07:45:39 +01:00
1fd1540d60 Fixed fullmove counters in PGN export 2019-12-10 21:27:06 +01:00
546b818345 Including fullmove counters in PGN export 2019-12-08 22:15:29 +01:00
719e4f99ef 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
927d5ed254 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
21199dede5 Created Move#fromSAN, moved implementation from Board 2019-11-19 06:30:53 +01:00
cf5b507f00 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
12f6f7f0ef Added empty save methods to PGNDatabase and PGNGame 2019-11-07 05:53:28 +01:00
39e40e8c2e 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
198267c3b1 Using reflection in FENString, fixed input field in MainWindow 2019-11-05 05:51:41 +01:00
f70cd85f2c
Merge pull request #11 from CyB3RC0nN0R/f/pawn_promotion
Added pawn promotion
2019-11-05 05:44:11 +01:00
86a1c70eda 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
5b99370884 Added pawn promotion support to LAN 2019-11-04 18:11:23 +01:00
e955f05016 Removed Type enumeration from Piece class 2019-11-04 05:51:11 +01:00
71f48895df 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
0edb83087b Created getters for all fields in Move 2019-10-31 19:09:43 +01:00
3e7f379196 Moved board evaluation logic to MoveProcessor 2019-10-30 17:11:57 +01:00
3eb292b589 Added RestartEvent to clear move list after game restart 2019-10-30 06:12:31 +01:00
2fb917c1c6 Fully implemented castling conditions
Closes #8
2019-10-29 06:24:44 +01:00
d3d721a41b Implemented 'go' command in UCI protocol
Closes #5
2019-10-28 18:54:00 +01:00
4e64e16fa7 Implemented 'position moves' command in UCI protocol 2019-10-28 18:31:18 +01:00
43d9fec0f2 Implemented 'currline' command in UCI protocol 2019-10-28 18:24:26 +01:00
caff59741c Changed class Javadoc to use @author and @since tags 2019-10-26 07:55:21 +02:00
85a8bf817f
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
ada382aee6 Moved loadFile method to MainWindow, removed redundancies 2019-10-25 16:58:18 +02:00
5f6e2e514f Removed old FEN string methods, fixed FEN regex 2019-10-25 11:52:48 +02:00
208f585c11 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
de18ec5759 Enhanced FENString class, added unit test and Board#equals() 2019-10-24 19:54:59 +02:00
47db284b9b Added FENString class 2019-10-24 06:09:16 +02:00
73f5e17405 Renamed FEN string fullmove counter to fullmove number 2019-10-22 21:25:06 +02:00
40a3a92686 Added PGNDatabaseTest and test file 2019-10-21 21:45:38 +02:00
1ed43dd180 Created io package, moved IO-related classes 2019-10-20 17:27:52 +02:00
0148fbe570 Replaced game configuration dialog by a JOptionPane 2019-10-20 11:51:56 +02:00
84158c2dac Improved PGN parsing, added PGN file loading 2019-10-20 11:22:58 +02:00
02a4b3ee32 Implemented game loading from FEN file 2019-10-18 17:45:13 +02:00
c31bfca497 Added file chooser dialog, renamed GameConfigurationDialog to DialogUtil 2019-10-14 06:31:03 +02:00
90437e822b Replaced LogPanel by a JList inside GamePane with a custom cell renderer 2019-10-13 21:34:22 +02:00
0d654571a1 Fixed texture scaling method in TextureUtil 2019-10-13 14:37:35 +02:00
f949a0132b Added PGNDatabase and PGNGame classes with support for PGN parsing 2019-10-09 21:03:39 +02:00
63317eaa0b Renamed SAN-like coordinate notation to LAN, added SAN support to Board 2019-10-09 21:02:22 +02:00
037888e79f Added ChessException class 2019-10-04 18:18:00 +02:00
4bcb0a032d Moved MoveNode into a separate file 2019-10-04 10:25:03 +02:00
b969ff9e2b Fixed LogPanel to support new log data model 2019-09-23 17:37:42 +02:00
2c3ac42516 Fixed memory leak, improved copy constructors 2019-09-19 21:31:24 +02:00
47a120e651 Fixed Log with respect to variations 2019-09-18 15:00:31 +02:00
ea8d754a72 Added variations in Log, added LogTest 2019-09-13 18:13:34 +02:00
1d2cf364bd 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
249c9f74a0 Refactoring
- Simplified FEN-string generation
- Made GameConfigurationDialog a utility class
2019-09-09 19:05:57 +02:00