From: Marco Costalba Date: Sun, 25 Jul 2010 08:52:06 +0000 (+0100) Subject: Cleanup Position::print() X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=a84e4b20491f69d2b6f64e4f9738fc8ba3394990 Cleanup Position::print() And remove not used OUTSIDE enum Piece. No functional change. Signed-off-by: Marco Costalba --- diff --git a/src/piece.h b/src/piece.h index bc70594d..a4541d7f 100644 --- a/src/piece.h +++ b/src/piece.h @@ -39,9 +39,8 @@ enum PieceType { }; enum Piece { - NO_PIECE = 0, WP = 1, WN = 2, WB = 3, WR = 4, WQ = 5, WK = 6, - BP = 9, BN = 10, BB = 11, BR = 12, BQ = 13, BK = 14, - EMPTY = 16, OUTSIDE = 17 + EMPTY_BLACK_SQ = 0, WP = 1, WN = 2, WB = 3, WR = 4, WQ = 5, WK = 6, + BP = 9, BN = 10, BB = 11, BR = 12, BQ = 13, BK = 14, EMPTY = 16 }; diff --git a/src/position.cpp b/src/position.cpp index eab1e084..5e64975b 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -56,6 +56,7 @@ struct PieceLetters : std::map { operator[]('B') = WB; operator[]('b') = BB; operator[]('N') = WN; operator[]('n') = BN; operator[]('P') = WP; operator[]('p') = BP; + operator[](' ') = EMPTY; operator[]('.') = EMPTY_BLACK_SQ; } char from_piece(Piece p) const { @@ -82,7 +83,6 @@ Key Position::zobExclusion; Score Position::PieceSquareTable[16][64]; -static bool RequestPending = false; static PieceLetters pieceLetters; @@ -372,44 +372,42 @@ const string Position::to_fen() const { /// Position::print() prints an ASCII representation of the position to /// the standard output. If a move is given then also the san is print. -void Position::print(Move m) const { +void Position::print(Move move) const { - static const string pieceLetters = " PNBRQK PNBRQK ."; + const char* dottedLine = "\n+---+---+---+---+---+---+---+---+\n"; + static bool requestPending = false; // Check for reentrancy, as example when called from inside // MovePicker that is used also here in move_to_san() - if (RequestPending) + if (requestPending) return; - RequestPending = true; + requestPending = true; - cout << endl; - if (m != MOVE_NONE) + if (move) { Position p(*this, thread()); - string col = (color_of_piece_on(move_from(m)) == BLACK ? ".." : ""); - cout << "Move is: " << col << move_to_san(p, m) << endl; + string dd = (color_of_piece_on(move_from(move)) == BLACK ? ".." : ""); + cout << "\nMove is: " << dd << move_to_san(p, move); } + for (Rank rank = RANK_8; rank >= RANK_1; rank--) { - cout << "+---+---+---+---+---+---+---+---+" << endl; + cout << dottedLine << '|'; for (File file = FILE_A; file <= FILE_H; file++) { Square sq = make_square(file, rank); + char c = (color_of_piece_on(sq) == BLACK ? '=' : ' '); Piece piece = piece_on(sq); - if (piece == EMPTY && square_color(sq) == WHITE) - piece = NO_PIECE; - char col = (color_of_piece_on(sq) == BLACK ? '=' : ' '); - cout << '|' << col << pieceLetters[piece] << col; + if (piece == EMPTY && square_color(sq) == BLACK) + piece = EMPTY_BLACK_SQ; + + cout << c << pieceLetters.from_piece(piece) << c << '|'; } - cout << '|' << endl; } - cout << "+---+---+---+---+---+---+---+---+" << endl - << "Fen is: " << to_fen() << endl - << "Key is: " << st->key << endl; - - RequestPending = false; + cout << dottedLine << "Fen is: " << to_fen() << "\nKey is: " << st->key << endl; + requestPending = false; }