From 9d1151575ddf3219c1ee157fe7a8336764e825ec Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Fri, 4 Jan 2013 12:32:13 +0100 Subject: [PATCH] Reformat FEN construction Simplify and shrink code. No functional change. --- src/position.cpp | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/position.cpp b/src/position.cpp index c814e765..8dab668b 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -331,33 +331,26 @@ void Position::set_castle_right(Color c, Square rfrom) { const string Position::fen() const { std::ostringstream ss; - Square sq; - int emptyCnt; for (Rank rank = RANK_8; rank >= RANK_1; rank--) { - emptyCnt = 0; - for (File file = FILE_A; file <= FILE_H; file++) { - sq = file | rank; + Square sq = file | rank; if (is_empty(sq)) - emptyCnt++; - else { - if (emptyCnt > 0) - { - ss << emptyCnt; - emptyCnt = 0; - } - ss << PieceToChar[piece_on(sq)]; + int emptyCnt = 1; + + for ( ; file < FILE_H && is_empty(sq++); file++) + emptyCnt++; + + ss << emptyCnt; } + else + ss << PieceToChar[piece_on(sq)]; } - if (emptyCnt > 0) - ss << emptyCnt; - if (rank > RANK_1) ss << '/'; } -- 2.39.2