X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fuci.cpp;h=248601b5de3b5db960a664f589b7ccdb0c47ecc4;hp=d15b086677204ff03b40027845766320447dad1f;hb=c9d7e99de682516c560009b550c41da9ae2008b8;hpb=caa02b0e43dbce0c723bc6499aab811ca3e5408e diff --git a/src/uci.cpp b/src/uci.cpp index d15b0866..248601b5 100644 --- a/src/uci.cpp +++ b/src/uci.cpp @@ -65,7 +65,6 @@ bool execute_uci_command(const string& cmd) { static Position pos(StartPositionFEN, false, 0); // The root position UCIParser up(cmd); - Value dummy; string token; up >> token; // operator>>() skips any whitespace @@ -78,8 +77,8 @@ bool execute_uci_command(const string& cmd) { else if (token == "uci") cout << "id name " << engine_name() - << "\nid author " << engine_author() - << "\n" << options_to_uci() + << "\nid author " << engine_authors() + << "\n" << Options.print_all() << "\nuciok" << endl; else if (token == "ucinewgame") @@ -98,9 +97,10 @@ bool execute_uci_command(const string& cmd) { pos.print(); else if (token == "eval") - cout << "Incremental mg: " << mg_value(pos.value()) - << "\nIncremental eg: " << eg_value(pos.value()) - << "\nFull eval: " << evaluate(pos, dummy) << endl; + { + read_evaluation_uci_options(pos.side_to_move()); + cout << trace_evaluate(pos) << endl; + } else if (token == "key") cout << "key: " << hex << pos.get_key() @@ -203,50 +203,48 @@ namespace { bool go(Position& pos, UCIParser& up) { string token; - Move searchMoves[MOVES_MAX]; - int movesToGo, depth, nodes, moveTime, numOfMoves; - bool infinite, ponder; - int time[2] = {0, 0}, inc[2] = {0, 0}; - - searchMoves[0] = MOVE_NONE; - infinite = ponder = false; - movesToGo = depth = nodes = moveTime = numOfMoves = 0; + int time[] = { 0, 0 }, inc[] = { 0, 0 }; + SearchLimits limits(0, 0, 0, 0, 0, 0, false, false); + Move searchMoves[MAX_MOVES] = { MOVE_NONE }; + Move* cur = searchMoves; while (up >> token) { if (token == "infinite") - infinite = true; + limits.infinite = true; else if (token == "ponder") - ponder = true; + limits.ponder = true; else if (token == "wtime") - up >> time[0]; + up >> time[WHITE]; else if (token == "btime") - up >> time[1]; + up >> time[BLACK]; else if (token == "winc") - up >> inc[0]; + up >> inc[WHITE]; else if (token == "binc") - up >> inc[1]; + up >> inc[BLACK]; else if (token == "movestogo") - up >> movesToGo; + up >> limits.movesToGo; else if (token == "depth") - up >> depth; + up >> limits.maxDepth; else if (token == "nodes") - up >> nodes; + up >> limits.maxNodes; else if (token == "movetime") - up >> moveTime; + up >> limits.maxTime; else if (token == "searchmoves") { while (up >> token) - searchMoves[numOfMoves++] = move_from_uci(pos, token); + *cur++ = move_from_uci(pos, token); - searchMoves[numOfMoves] = MOVE_NONE; + *cur = MOVE_NONE; } } assert(pos.is_ok()); - return think(pos, infinite, ponder, time, inc, movesToGo, - depth, nodes, moveTime, searchMoves); + limits.time = time[pos.side_to_move()]; + limits.increment = inc[pos.side_to_move()]; + + return think(pos, limits, searchMoves); } void perft(Position& pos, UCIParser& up) {