X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fuci.cpp;h=b3a27fbc8e06528c3e9f3c986b9c6f88c2ebdad7;hp=e4a4393cfe7280d4e3ef9bbfd77da6e86d9cba30;hb=2469daebb1b2ec2ca1653754c35327c16838938e;hpb=b2c0634d4898a78a9e82fca9197467d442e5cb95 diff --git a/src/uci.cpp b/src/uci.cpp index e4a4393c..b3a27fbc 100644 --- a/src/uci.cpp +++ b/src/uci.cpp @@ -23,12 +23,11 @@ #include #include "evaluate.h" -#include "notation.h" #include "position.h" #include "search.h" #include "thread.h" #include "tt.h" -#include "ucioption.h" +#include "uci.h" using namespace std; @@ -72,7 +71,7 @@ namespace { SetupStates = Search::StateStackPtr(new std::stack()); // Parse move list (if any) - while (is >> token && (m = move_from_uci(pos, token)) != MOVE_NONE) + while (is >> token && (m = UCI::to_move(pos, token)) != MOVE_NONE) { SetupStates->push(StateInfo()); pos.do_move(m, SetupStates->top()); @@ -117,7 +116,7 @@ namespace { { if (token == "searchmoves") while (is >> token) - limits.searchmoves.push_back(move_from_uci(pos, token)); + limits.searchmoves.push_back(UCI::to_move(pos, token)); else if (token == "wtime") is >> limits.time[WHITE]; else if (token == "btime") is >> limits.time[BLACK]; @@ -174,12 +173,14 @@ void UCI::loop(int argc, char* argv[]) { else Search::Limits.ponder = false; } - else if (token == "perft" && (is >> token)) // Read perft depth + else if (token == "perft") { + int depth; stringstream ss; + is >> depth; ss << Options["Hash"] << " " - << Options["Threads"] << " " << token << " current perft"; + << Options["Threads"] << " " << depth << " current " << token; benchmark(pos, ss); } @@ -188,18 +189,13 @@ void UCI::loop(int argc, char* argv[]) { << "position key: " << setw(16) << pos.key() << "\nmaterial key: " << setw(16) << pos.material_key() << "\npawn key: " << setw(16) << pos.pawn_key() - << dec << sync_endl; + << dec << nouppercase << setfill(' ') << sync_endl; else if (token == "uci") sync_cout << "id name " << engine_info(true) << "\n" << Options << "\nuciok" << sync_endl; - else if (token == "eval") - { - Search::RootColor = pos.side_to_move(); // Ensure it is set - sync_cout << Eval::trace(pos) << sync_endl; - } else if (token == "ucinewgame") TT.clear(); else if (token == "go") go(pos, is); else if (token == "position") position(pos, is); @@ -208,6 +204,7 @@ void UCI::loop(int argc, char* argv[]) { else if (token == "bench") benchmark(pos, is); else if (token == "d") sync_cout << pos.pretty() << sync_endl; else if (token == "isready") sync_cout << "readyok" << sync_endl; + else if (token == "eval") sync_cout << Eval::trace(pos) << sync_endl; else sync_cout << "Unknown command: " << cmd << sync_endl;