From: Fabian Fichter Date: Sun, 26 Sep 2021 15:54:14 +0000 (+0200) Subject: More robust shogi FEN parsing X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=3af1cb67b68906da20da281df90a379d3fff69bb;p=fairystockfish.git More robust shogi FEN parsing Closes #370. --- diff --git a/src/position.cpp b/src/position.cpp index f51e349..96ad631 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -285,14 +285,15 @@ Position& Position::set(const Variant* v, const string& fenStr, bool isChess960, put_piece(Piece(idx), sq, token == '~'); ++sq; } + // Promoted shogi pieces - else if (token == '+') + else if (token == '+' && (idx = piece_to_char().find(ss.peek())) != string::npos) { ss >> token; - idx = piece_to_char().find(token); put_piece(make_piece(color_of(Piece(idx)), promoted_piece_type(type_of(Piece(idx)))), sq, true, Piece(idx)); ++sq; } + // Stop before pieces in hand else if (token == '[') break;