Print leading zeroes in hash keys
authorjundery <jundery@gmail.com>
Tue, 19 Feb 2013 07:54:16 +0000 (00:54 -0700)
committerMarco Costalba <mcostalba@gmail.com>
Tue, 19 Feb 2013 19:06:01 +0000 (20:06 +0100)
And convert to uppercase. Reset the stream to dec too.

[Edit: Also fixed the hash key in Position::pretty()]

src/position.cpp
src/uci.cpp

index 8c36d9ac26ab604da8b994d0943d450a77f7a1fd..ad699cc0e93423ef4112093b442da41c0466cb72 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <cassert>
 #include <cstring>
+#include <iomanip>
 #include <iostream>
 #include <sstream>
 #include <algorithm>
@@ -400,7 +401,8 @@ const string Position::pretty(Move move) const {
       if (piece_on(sq) != NO_PIECE)
           brd[513 - 68*rank_of(sq) + 4*file_of(sq)] = PieceToChar[piece_on(sq)];
 
-  ss << brd << "\nFen: " << fen() << "\nKey: " << st->key << "\nCheckers: ";
+  ss << brd << "\nFen: " << fen() << "\nKey: " << std::hex << std::uppercase
+     << std::setfill('0') << std::setw(16) << st->key << "\nCheckers: ";
 
   for (Bitboard b = checkers(); b; )
       ss << square_to_string(pop_lsb(&b)) << " ";
index bd5f4296563d0d4a72bbeed7042bf911da797d3f..c8f504463cef969db7a72c9816d3c23fd6f18b94 100644 (file)
@@ -17,6 +17,7 @@
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
+#include <iomanip>
 #include <iostream>
 #include <sstream>
 #include <string>
@@ -90,14 +91,17 @@ void UCI::loop(const string& args) {
 
           benchmark(pos, ss);
       }
-      else if (token == "key") sync_cout <<   "position key: " << hex << pos.key()
-                                         << "\nmaterial key: " << pos.material_key()
-                                         << "\npawn key:     " << pos.pawn_key()
-                                         << sync_endl;
-
-      else if (token == "uci") sync_cout << "id name " << engine_info(true)
-                                         << "\n"       << Options
-                                         << "\nuciok"  << sync_endl;
+      else if (token == "key")
+          sync_cout << hex << uppercase << setfill('0')
+                    << "position key: "   << setw(16) << pos.key()
+                    << "\nmaterial key: " << setw(16) << pos.material_key()
+                    << "\npawn key:     " << setw(16) << pos.pawn_key()
+                    << dec << sync_endl;
+
+      else if (token == "uci")
+          sync_cout << "id name " << engine_info(true)
+                    << "\n"       << Options
+                    << "\nuciok"  << sync_endl;
 
       else if (token == "ucinewgame") TT.clear();
       else if (token == "go")         go(pos, is);