changelog
- Thu, 06 Aug 2026 16:11:37 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 06 Aug 2026 16:11:37 +0200] rev 170
- implements stalemate detection + fixes missing const qualifier in new *_moves[_allowed] API
resolves #947
relates to #952
- Thu, 06 Aug 2026 14:45:55 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 06 Aug 2026 14:45:55 +0200] rev 169
- add functions to list the possible moves for each piece
resolves #952
- Sun, 02 Aug 2026 15:19:47 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 02 Aug 2026 15:19:47 +0200] rev 168
- fix unnecessary disambiguation + simplify get_real_threats() code
relates to #932
- Sun, 02 Aug 2026 15:08:43 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 02 Aug 2026 15:08:43 +0200] rev 167
- fix regression: pieces could not threaten fields when pinned
relates to #960
- Sat, 01 Aug 2026 11:26:48 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 01 Aug 2026 11:26:48 +0200] rev 166
- fix regression: pawns cannot block check threats
relates to #960
- Sat, 01 Aug 2026 10:58:39 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 01 Aug 2026 10:58:39 +0200] rev 165
- fix regression: missing promotion when simulating threats
- Sat, 01 Aug 2026 10:53:44 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 01 Aug 2026 10:53:44 +0200] rev 164
- fix bug when parsing checkmate indicator
- Thu, 30 Jul 2026 19:17:38 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 30 Jul 2026 19:17:38 +0200] rev 163
- major refactoring of rules API
- validate_move() no longer alters the game state (fixes #935)
- get_threats() now correctly only reports threats
while get_candidates() reports possible moves (fixes #959)
- qualify GameState and Move parameters as const where possible
- Thu, 30 Jul 2026 18:34:15 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 30 Jul 2026 18:34:15 +0200] rev 162
- add dependency on fen.h for rules.c
- Thu, 30 Jul 2026 11:49:47 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 30 Jul 2026 11:49:47 +0200] rev 161
- convert some macros to static inline functions
also fixes a theoretical memmory access bug in king_isblocked()
- Wed, 29 Jul 2026 13:45:51 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 29 Jul 2026 13:45:51 +0200] rev 160
- refactor rules.h / rules.c
- add meaningful type aliases
- add more useful functions and macros
- increase safety when working with flags and nibbles
- Tue, 28 Jul 2026 13:44:10 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 28 Jul 2026 13:44:10 +0200] rev 159
- add another game to test stalemate detection
relates to #947
- Tue, 28 Jul 2026 13:37:19 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 28 Jul 2026 13:37:19 +0200] rev 158
- gamestate_cleanup() is now safe to be called multiple times
fixes #950
- Tue, 28 Jul 2026 12:58:49 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 28 Jul 2026 12:58:49 +0200] rev 157
- add FEN history to the game state
relates to #872
- Fri, 24 Jul 2026 15:35:06 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 24 Jul 2026 15:35:06 +0200] rev 156
- fix: wrong error code when king moves into check and missing auto-disambiguation when one of the candidate pieces is pinned
fixes #899 and fixes #932
- Fri, 24 Jul 2026 12:53:58 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 24 Jul 2026 12:53:58 +0200] rev 155
- fix: disambiguation by row while capturing was not implemented
fixes #934
- Fri, 24 Jul 2026 12:44:42 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 24 Jul 2026 12:44:42 +0200] rev 154
- rename INVALID_POSITION to PIECE_NOT_FOUND
because that is really what it is used for
- Fri, 24 Jul 2026 12:42:57 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 24 Jul 2026 12:42:57 +0200] rev 153
- fix wrong error message when move indices are invalid
was INVALID_POSITION "no piece cannot be moved this way"
but should be INVALID_MOVE_SYNTAX
- Thu, 23 Jul 2026 11:37:35 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 23 Jul 2026 11:37:35 +0200] rev 152
- fix incorrect move notation when disambiguating moves
fixes #933
- Tue, 21 Jul 2026 14:09:55 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 21 Jul 2026 14:09:55 +0200] rev 151
- fix that en passant captures do not work
fixes #930
- Sun, 19 Jul 2026 19:17:04 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 19 Jul 2026 19:17:04 +0200] rev 150
- fix regression: position reporting about PGN errors
- Sun, 19 Jul 2026 17:13:16 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 19 Jul 2026 17:13:16 +0200] rev 149
- add 150 example games to test PGN parser
- Sat, 18 Jul 2026 22:00:49 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 18 Jul 2026 22:00:49 +0200] rev 148
- add test directory and make target for tests
- Sat, 18 Jul 2026 21:18:38 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 18 Jul 2026 21:18:38 +0200] rev 147
- make eval_move() and check_move() not change their input string
- Sat, 18 Jul 2026 21:18:07 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 18 Jul 2026 21:18:07 +0200] rev 146
- fix fucked up indentation
- Sat, 18 Jul 2026 15:30:08 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 18 Jul 2026 15:30:08 +0200] rev 145
- add sanity check for result in PGN move text
- Sat, 18 Jul 2026 15:01:04 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 18 Jul 2026 15:01:04 +0200] rev 144
- fix that checkmate notation did not set the check flag in the move
- Mon, 13 Jul 2026 22:37:40 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 13 Jul 2026 22:37:40 +0200] rev 143
- improve implementation of read_pgn() and parse_pgn()
- Mon, 13 Jul 2026 22:23:00 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 13 Jul 2026 22:23:00 +0200] rev 142
- fix implementation of parse_pgn()
- Mon, 13 Jul 2026 22:16:52 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 13 Jul 2026 22:16:52 +0200] rev 141
- fix memory leaks in server_run() when starting the game is aborted
- Mon, 13 Jul 2026 22:13:34 +0200
- by Mike Becker <universe@uap-core.de> [Mon, 13 Jul 2026 22:13:34 +0200] rev 140
- add parse_pgn function which can later be used for automated testing
- Sat, 13 Jun 2026 13:45:19 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 13 Jun 2026 13:45:19 +0200] rev 139
- fix checkmate detection
issue #895 and issue #896
- Sat, 13 Jun 2026 13:24:54 +0200
- by Mike Becker <universe@uap-core.de> [Sat, 13 Jun 2026 13:24:54 +0200] rev 138
- fix missing cleanup calls in game_play_singlemachine()
- Fri, 12 Jun 2026 15:32:33 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 12 Jun 2026 15:32:33 +0200] rev 137
- fix memory leak when simulating real threats
- Fri, 12 Jun 2026 15:28:00 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 12 Jun 2026 15:28:00 +0200] rev 136
- start fixing issue #895
- Fri, 12 Jun 2026 14:33:42 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 12 Jun 2026 14:33:42 +0200] rev 135
- fixes #893 - pawn could not promote
- Fri, 12 Jun 2026 13:36:15 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 12 Jun 2026 13:36:15 +0200] rev 134
- fixes #891 - wrong move number in FEN
- Fri, 12 Jun 2026 13:34:35 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 12 Jun 2026 13:34:35 +0200] rev 133
- simplify FEN generation and add current_color() function to rules
- Sun, 07 Jun 2026 16:56:22 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 07 Jun 2026 16:56:22 +0200] rev 132
- extracts FEN code into a separate compilation unit
relates to #842
- Sun, 07 Jun 2026 14:55:20 +0200
- by Mike Becker <universe@uap-core.de> [Sun, 07 Jun 2026 14:55:20 +0200] rev 131
- prepare netcode for claiming threefold repetition
relates to #843
- Thu, 28 May 2026 13:58:24 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 28 May 2026 13:58:24 +0200] rev 130
- implement optional delay - resolves #820
- Thu, 28 May 2026 12:15:26 +0200
- by Mike Becker <universe@uap-core.de> [Thu, 28 May 2026 12:15:26 +0200] rev 129
- simplify code structure
- Tue, 26 May 2026 15:29:00 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 26 May 2026 15:29:00 +0200] rev 128
- do not consider empty move strings an invalid move - just ask again
- Tue, 26 May 2026 15:21:42 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 26 May 2026 15:21:42 +0200] rev 127
- ask for player names during PGN export
resolves #840
- Fri, 22 May 2026 18:34:02 +0200
- by Mike Becker <universe@uap-core.de> [Fri, 22 May 2026 18:34:02 +0200] rev 126
- fix wrong game state when the waiting player resigns
fixes #844
- Wed, 20 May 2026 15:52:17 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 20 May 2026 15:52:17 +0200] rev 125
- fix non-POSIX syntax in update-rules.sh
- Wed, 20 May 2026 15:16:58 +0200
- by Mike Becker <universe@uap-core.de> [Wed, 20 May 2026 15:16:58 +0200] rev 124
- remove unused includes
- Tue, 19 May 2026 18:50:37 +0200
- by Mike Becker <universe@uap-core.de> [Tue, 19 May 2026 18:50:37 +0200] rev 123
- fix memory leak when playing a game over domain socket as a client