From a530fc2b600da4e9247a0e0242dead246d824c68 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Fri, 13 Nov 2009 10:27:14 +0100 Subject: [PATCH] Use a more standard perft UCI interface Call directly 'perft 6' to search up to depth 6*OnePly instead of the old 'perft depth 6'. It is more in line to what other engines do. Also a bit of cleanup while there. No functional change. Signed-off-by: Marco Costalba --- src/search.cpp | 12 ++++++------ src/uci.cpp | 19 +++++++++---------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index 1786a6fd..d654fec9 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -333,14 +333,14 @@ namespace { int perft(Position& pos, Depth depth) { Move move; - MovePicker mp = MovePicker(pos, MOVE_NONE, depth, H); int sum = 0; + MovePicker mp = MovePicker(pos, MOVE_NONE, depth, H); // If we are at the last ply we don't need to do and undo // the moves, just to count them. if (depth <= OnePly) // Replace with '<' to test also qsearch { - while ((move = mp.get_next_move()) != MOVE_NONE) sum++; + while (mp.get_next_move()) sum++; return sum; } @@ -348,10 +348,10 @@ int perft(Position& pos, Depth depth) CheckInfo ci(pos); while ((move = mp.get_next_move()) != MOVE_NONE) { - StateInfo st; - pos.do_move(move, st, ci, pos.move_is_check(move, ci)); - sum += perft(pos, depth - OnePly); - pos.undo_move(move); + StateInfo st; + pos.do_move(move, st, ci, pos.move_is_check(move, ci)); + sum += perft(pos, depth - OnePly); + pos.undo_move(move); } return sum; } diff --git a/src/uci.cpp b/src/uci.cpp index f6b27114..69de2fb1 100644 --- a/src/uci.cpp +++ b/src/uci.cpp @@ -324,18 +324,17 @@ namespace { void perft(UCIInputParser& uip) { string token; - int depth = 0; + int depth, tm, n; + Position pos = RootPosition; - while (!uip.eof()) - { - uip >> token; + if (uip.eof()) + return; + + uip >> depth; + tm = get_system_time(); + + n = perft(pos, depth * OnePly); - if (token == "depth") - uip >> depth; - } - Position pos = RootPosition; - int tm = get_system_time(); - int n = perft(pos, depth * OnePly); tm = get_system_time() - tm; std::cout << "\nNodes " << n << "\nTime (ms) " << tm -- 2.39.2