From 3af1cb67b68906da20da281df90a379d3fff69bb Mon Sep 17 00:00:00 2001 From: Fabian Fichter Date: Sun, 26 Sep 2021 17:54:14 +0200 Subject: [PATCH] More robust shogi FEN parsing Closes #370. --- src/position.cpp | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) 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; -- 1.7.0.4