Disservin/fastchess

wrong book input?

Closed this issue · 5 comments

Continuation from #556 (comment)

For a game (at fixed depth) with different result between cutechess and fast-chess, the origin seems to be in parsing the book. The initial FEN in the corresponding match pgn is:

fast-chess:
[FEN "rnbqkbnr/ppp2ppp/8/3Pp3/8/8/PPPP1PPP/RNBQKBNR w KQkq - 0 1"]
leading to
1. Nc3 {+1.00/10, 0.006s} Nf6 {-0.98/12, 0.026s} 2. Nf3 {+0.92/10, 0.007s}
Bd6 {-0.75/12, 0.019s} 3. d4 {+0.62/10, 0.015s} e4 {-0.67/12, 0.010s}


cute-chess:
[FEN "rnbqkbnr/ppp2ppp/8/3Pp3/8/8/PPPP1PPP/RNBQKBNR w KQkq e6 0 1"]
1. dxe6 {+1.34/10 0.003s} Bxe6 {-1.24/12 0.019s} 2. Nf3 {+1.43/10 0.003s}
Nf6 {-1.24/12 0.004s} 3. Nc3 {+1.19/10 0.022s} Nc6 {-1.25/12 0.012s}

The book fen is

rnbqkbnr/ppp2ppp/8/3Pp3/8/8/PPPP1PPP/RNBQKBNR w KQkq e6

Reproducible with:

$ cat minibook.epd 
rnbqkbnr/ppp2ppp/8/3Pp3/8/8/PPPP1PPP/RNBQKBNR w KQkq e6

and

$ cat do_match_fastchess.sh 
for binary in ./cutechess-cli ./fast-chess
do

echo " ============= $binary ============== "

(

$binary         -recover -repeat -games 2 -rounds 1 -tournament gauntlet\
                -pgnout $binary-out.pgn\
                -srand $RANDOM  -resign movecount=3 score=600 -draw movenumber=34 movecount=8 score=20\
                -variant standard -concurrency 1 -openings file=minibook.epd format=epd order=sequential \
                -engine name=sf_1 tc=100+0.1 depth=10 cmd=./sf_1 dir=.\
                -engine name=sf_2 tc=100+0.1 depth=12 cmd=./sf_2 dir=.\
                -each proto=uci option.Threads=1

) | grep "Finished game" | sort -n -k 3 > $binary-out.finished

done

diff ./cutechess-cli-out.finished ./fast-chess-out.finished

hmm possibly because of the removed movecounter?

epd has no move counter?

apparently this is a bug in the setFen where the en peassant square doesnt get parsed when the FEN has no movecounter

good catch, ill fix