Cleanup Position::print()
authorMarco Costalba <mcostalba@gmail.com>
Sun, 25 Jul 2010 08:52:06 +0000 (09:52 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 25 Jul 2010 08:57:57 +0000 (09:57 +0100)
And remove not used OUTSIDE enum Piece.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/piece.h
src/position.cpp

index bc70594de2d1e0f91d620af19f95a6c4447a9f06..a4541d7fd350af90ed23fa75694d6d3c86fbda1e 100644 (file)
@@ -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
 };
 
 
index eab1e0849005493a8b016256bf985395e1412d09..5e64975b0e2c8106b40e2b9e04852dd85ed41380 100644 (file)
@@ -56,6 +56,7 @@ struct PieceLetters : std::map<char, Piece> {
       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;
 }