Commit Graph

131 Commits

Author SHA1 Message Date
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
8d23315481 Added LogPanel to GamePane 2019-09-09 06:14:37 +02:00
37cf7dcab2 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
897353efeb Fixed frozen game after adding a new one 2019-09-06 13:24:58 +02:00
875cd22521 Opening the new tab after starting a game 2019-09-01 18:57:31 +02:00
c712e066fe 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
513c0077e0 Associated DropTarget with MainWindow
When a FEN file is dropped into the main window, the drop target
automatically loads it into the currently visible (=selected) game.
2019-08-24 16:04:09 +02:00
961100f74c Added game tab support
+ GamePane component with the game displaying functionality from
MainWindow
- Simplified MainWindow, added JTabbedPane with GamePane elements
- Adjusted FENDropTarget and MenuBar
2019-08-23 22:00:30 +02:00
7271f7b3a3 Fixed documentation 2019-08-23 21:10:19 +02:00