Small cleanup in execute_uci_command()
authorMarco Costalba <mcostalba@gmail.com>
Sun, 9 Jan 2011 14:57:18 +0000 (15:57 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 9 Jan 2011 15:24:30 +0000 (16:24 +0100)
With a little fall out in siblings functions...

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/main.cpp
src/misc.cpp
src/misc.h
src/uci.cpp
src/ucioption.cpp
src/ucioption.h

index 01b032c2ddca230595225da082b6f0af88dca00b..fa821151359ac31cb904ebfd66226ae89d49955a 100644 (file)
@@ -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;
index b2c66299690c5e0647b5e5b5e97df690edb8c1d3..74b6385a45217d18c833b658a013b5f58c29a904 100644 (file)
@@ -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.
index c21992ba35e40135ac4b94ebfb85fad81dfaada5..7cee869cbeeb5978388b1a2ffc630dcfccc86007 100644 (file)
@@ -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();
index 826ecd12e1ad694c2988719f3bc46b0e85ed20fc..d15b086677204ff03b40027845766320447dad1f 100644 (file)
@@ -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);
 
index cd59c9310042a425a4fd2b9525b132e24947e9d4..ab8137c4492b99a26508ef3eed2e4caa76313609 100644 (file)
@@ -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();
 }
 
 
index 6c9812189744a5bd93cf0fbc9915360019917433..ae7d392a01d8e52fc4942f18c540a3383f58a30b 100644 (file)
@@ -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<std::string, Option, CaseInsensitiveLess> 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)