From: Marco Costalba Date: Sun, 9 Jan 2011 14:57:18 +0000 (+0100) Subject: Small cleanup in execute_uci_command() X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=caa02b0e43dbce0c723bc6499aab811ca3e5408e;hp=a8741bd59fb928f7107ecc4717105070ff0ef311 Small cleanup in execute_uci_command() With a little fall out in siblings functions... No functional change. Signed-off-by: Marco Costalba --- diff --git a/src/main.cpp b/src/main.cpp index 01b032c2..fa821151 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -75,8 +75,7 @@ int main(int argc, char* argv[]) { if (argc <= 1) { // Print copyright notice - cout << engine_name() - << " by Tord Romstad, Marco Costalba, Joona Kiiski" << endl; + cout << engine_name() << " by " << engine_author() << endl; if (CpuHasPOPCNT) cout << "Good! CPU has hardware POPCNT." << endl; diff --git a/src/misc.cpp b/src/misc.cpp index b2c66299..74b6385a 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -154,6 +154,8 @@ const string engine_name() { return s.str(); } +const string engine_author() { return "Tord Romstad, Marco Costalba and Joona Kiiski"; } + /// get_system_time() returns the current system time, measured in /// milliseconds. diff --git a/src/misc.h b/src/misc.h index c21992ba..7cee869c 100644 --- a/src/misc.h +++ b/src/misc.h @@ -44,6 +44,7 @@ //// extern const std::string engine_name(); +extern const std::string engine_author(); extern int get_system_time(); extern int cpu_count(); extern int input_available(); diff --git a/src/uci.cpp b/src/uci.cpp index 826ecd12..d15b0866 100644 --- a/src/uci.cpp +++ b/src/uci.cpp @@ -65,24 +65,23 @@ bool execute_uci_command(const string& cmd) { static Position pos(StartPositionFEN, false, 0); // The root position UCIParser up(cmd); + Value dummy; string token; - if (!(up >> token)) // operator>>() skips any whitespace - return true; + up >> token; // operator>>() skips any whitespace if (token == "quit") return false; - if (token == "go") + else if (token == "go") return go(pos, up); - if (token == "uci") - { + else if (token == "uci") cout << "id name " << engine_name() - << "\nid author Tord Romstad, Marco Costalba, Joona Kiiski\n"; - print_uci_options(); - cout << "uciok" << endl; - } + << "\nid author " << engine_author() + << "\n" << options_to_uci() + << "\nuciok" << endl; + else if (token == "ucinewgame") pos.from_fen(StartPositionFEN, false); @@ -95,30 +94,27 @@ bool execute_uci_command(const string& cmd) { else if (token == "setoption") set_option(up); - // The remaining commands are for debugging purposes only else if (token == "d") pos.print(); - else if (token == "flip") - { - Position p(pos, pos.thread()); - pos.flipped_copy(p); - } else if (token == "eval") - { - Value evalMargin; cout << "Incremental mg: " << mg_value(pos.value()) << "\nIncremental eg: " << eg_value(pos.value()) - << "\nFull eval: " << evaluate(pos, evalMargin) << endl; - } + << "\nFull eval: " << evaluate(pos, dummy) << endl; + else if (token == "key") - cout << "key: " << hex << pos.get_key() + cout << "key: " << hex << pos.get_key() << "\nmaterial key: " << pos.get_material_key() - << "\npawn key: " << pos.get_pawn_key() << endl; + << "\npawn key: " << pos.get_pawn_key() << endl; else if (token == "perft") perft(pos, up); + else if (token == "flip") + { + Position p(pos, pos.thread()); + pos.flipped_copy(p); + } else cout << "Unknown command: " << cmd << endl; @@ -207,13 +203,14 @@ namespace { bool go(Position& pos, UCIParser& up) { string token; - - int time[2] = {0, 0}, inc[2] = {0, 0}; - int movesToGo = 0, depth = 0, nodes = 0, moveTime = 0; - bool infinite = false, ponder = false; 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; while (up >> token) { @@ -239,7 +236,6 @@ namespace { up >> moveTime; else if (token == "searchmoves") { - int numOfMoves = 0; while (up >> token) searchMoves[numOfMoves++] = move_from_uci(pos, token); diff --git a/src/ucioption.cpp b/src/ucioption.cpp index cd59c931..ab8137c4 100644 --- a/src/ucioption.cpp +++ b/src/ucioption.cpp @@ -118,28 +118,29 @@ void init_uci_options() { } -/// print_uci_options() prints all the UCI options to the standard output, -/// in chronological insertion order (the idx field) and in the format -/// defined by the UCI protocol. +/// options_to_uci() returns a string with all the UCI options in chronological +/// insertion order (the idx field) and in the format defined by the UCI protocol. -void print_uci_options() { +string options_to_uci() { + + std::stringstream s; for (size_t i = 0; i <= Options.size(); i++) for (OptionsMap::const_iterator it = Options.begin(); it != Options.end(); ++it) if (it->second.idx == i) { const Option& o = it->second; - cout << "\noption name " << it->first << " type " << o.type; + s << "\noption name " << it->first << " type " << o.type; if (o.type != "button") - cout << " default " << o.defaultValue; + s << " default " << o.defaultValue; if (o.type == "spin") - cout << " min " << o.minValue << " max " << o.maxValue; + s << " min " << o.minValue << " max " << o.maxValue; break; } - cout << endl; + return s.str(); } diff --git a/src/ucioption.h b/src/ucioption.h index 6c981218..ae7d392a 100644 --- a/src/ucioption.h +++ b/src/ucioption.h @@ -37,7 +37,7 @@ public: private: friend void init_uci_options(); - friend void print_uci_options(); + friend std::string options_to_uci(); std::string defaultValue, currentValue, type; size_t idx; @@ -75,6 +75,6 @@ typedef std::map OptionsMap; extern OptionsMap Options; extern void init_uci_options(); -extern void print_uci_options(); +extern std::string options_to_uci(); #endif // !defined(UCIOPTION_H_INCLUDED)