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