implements stalemate detection + fixes missing const qualifier in new *_moves[_allowed] API default tip

add functions to list the possible moves for each piece

fix unnecessary disambiguation + simplify get_real_threats() code

fix regression: pieces could not threaten fields when pinned

fix regression: pawns cannot block check threats

fix regression: missing promotion when simulating threats

fix bug when parsing checkmate indicator

major refactoring of rules API

add dependency on fen.h for rules.c

convert some macros to static inline functions

refactor rules.h / rules.c

add another game to test stalemate detection

gamestate_cleanup() is now safe to be called multiple times

add FEN history to the game state

fix: wrong error code when king moves into check and missing auto-disambiguation when one of the candidate pieces is pinned

fix: disambiguation by row while capturing was not implemented

rename INVALID_POSITION to PIECE_NOT_FOUND

fix wrong error message when move indices are invalid

fix incorrect move notation when disambiguating moves

fix that en passant captures do not work

fix regression: position reporting about PGN errors

add 150 example games to test PGN parser

add test directory and make target for tests

make eval_move() and check_move() not change their input string

fix fucked up indentation

add sanity check for result in PGN move text

fix that checkmate notation did not set the check flag in the move

improve implementation of read_pgn() and parse_pgn()

fix implementation of parse_pgn()

fix memory leaks in server_run() when starting the game is aborted

add parse_pgn function which can later be used for automated testing

fix checkmate detection

fix missing cleanup calls in game_play_singlemachine()

fix memory leak when simulating real threats

start fixing issue #895

fixes #893 - pawn could not promote

fixes #891 - wrong move number in FEN

simplify FEN generation and add current_color() function to rules

extracts FEN code into a separate compilation unit

prepare netcode for claiming threefold repetition

implement optional delay - resolves #820

simplify code structure

do not consider empty move strings an invalid move - just ask again

ask for player names during PGN export

fix wrong game state when the waiting player resigns

fix non-POSIX syntax in update-rules.sh

remove unused includes

fix memory leak when playing a game over domain socket as a client

(0) -100 -48 tip

mercurial