]> git.sesse.net Git - stockfish/commitdiff
Pass also opponent time to think()
authorMarco Costalba <mcostalba@gmail.com>
Thu, 18 Sep 2008 09:31:01 +0000 (10:31 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Thu, 18 Sep 2008 10:27:09 +0000 (12:27 +0200)
This patch modifies think() signature to accept
also opponent time. This is needed for future
changes to time managment.

Still no functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/benchmark.cpp
src/search.cpp
src/search.h
src/uci.cpp

index fe701a9c8cc5a78a89fc07c4ce716fba94d5f837..4c6c0da67253e335e014fc17c1ddbe77e07a57d7 100644 (file)
@@ -124,6 +124,6 @@ void benchmark(const std::string& commandLine) {
   {
       Move moves[1] = {MOVE_NONE};\r
       Position pos(*it);      
-      think(pos, true, false, 0, 0, 0, 0, 0, secsPerPos * 1000, moves);\r
+      think(pos, true, false, 0, 0, 0, 0, 0, 0, secsPerPos * 1000, moves);\r
   }
 }
index e4675df56ea35b75b39a14c9672e901310d3f6e5..5599faab242a6164d0d23b0ec8334a173689518b 100644 (file)
@@ -300,9 +300,9 @@ History H;  // Should be made local?
 /// the program receives the UCI 'go' command.  It initializes various
 /// search-related global variables, and calls root_search()
 
-void think(const Position &pos, bool infinite, bool ponder, int time,
-           int increment, int movesToGo, int maxDepth, int maxNodes,
-           int maxTime, Move searchMoves[]) {
+void think(const Position &pos, bool infinite, bool ponder, int side_to_move,
+           int time[], int increment[], int movesToGo, int maxDepth,
+           int maxNodes, int maxTime, Move searchMoves[]) {
 
   // Look for a book move:
   if(!infinite && !ponder && get_option_value_bool("OwnBook")) {
@@ -422,24 +422,29 @@ void think(const Position &pos, bool infinite, bool ponder, int time,
     assert(thread_is_available(i, 0));
 
   // Set thinking time:
+  int myTime = time[side_to_move];
+  int myIncrement = increment[side_to_move];
+  int oppTime = time[1 - side_to_move];
+  int oppIncrement = increment[1 - side_to_move];
+
   if(!movesToGo) { // Sudden death time control
     if(increment) {
-      MaxSearchTime = time / 30 + increment;
-      AbsoluteMaxSearchTime = Max(time / 4, increment - 100);
+      MaxSearchTime = myTime / 30 + myIncrement;
+      AbsoluteMaxSearchTime = Max(myTime / 4, myIncrement - 100);
     }
     else { // Blitz game without increment
-      MaxSearchTime = time / 40;
-      AbsoluteMaxSearchTime = time / 8;
+      MaxSearchTime = myTime / 40;
+      AbsoluteMaxSearchTime = myTime / 8;
     }
   }
   else { // (x moves) / (y minutes)
     if(movesToGo == 1) {
-      MaxSearchTime = time / 2;
-      AbsoluteMaxSearchTime = Min(time / 2, time - 500);
+      MaxSearchTime = myTime / 2;
+      AbsoluteMaxSearchTime = Min(myTime / 2, myTime - 500);
     }
     else {
-      MaxSearchTime = time / Min(movesToGo, 20);
-      AbsoluteMaxSearchTime = Min((4 * time) / movesToGo, time / 3);
+      MaxSearchTime = myTime / Min(movesToGo, 20);
+      AbsoluteMaxSearchTime = Min((4 * myTime) / movesToGo, myTime / 3);
     }
   }
   if(PonderingEnabled) {
index 831248bacc8ee05cb197bd5841d45b3ebe89c660..106daba9e15d0c339561248e54a247a5348e7295 100644 (file)
@@ -81,9 +81,9 @@ extern History H;
 
 extern void init_threads();
 extern void stop_threads();
-extern void think(const Position &pos, bool infinite, bool ponder, int time,
-                  int increment, int movesToGo, int maxDepth, int maxNodes,
-                  int maxTime, Move searchMoves[]);
+extern void think(const Position &pos, bool infinite, bool ponder, int side_to_move,
+                  int time[], int increment[], int movesToGo, int maxDepth, 
+                  int maxNodes, int maxTime, Move searchMoves[]);
 extern int64_t nodes_searched();
 
 
index bd1432f71d8fd906247f526051aaa1975406839e..1a2c05a40fccbc007b0f384f5ba2af3610d122dc 100644 (file)
@@ -134,6 +134,7 @@ namespace {
         TT.clear();
         Position::init_piece_square_tables();
         RootPosition.from_fen(StartPosition);
+
     }
     else if (token == "isready")
         std::cout << "readyok" << std::endl;
@@ -319,8 +320,7 @@ namespace {
     if (moveTime)
         infinite = true;  // HACK
 
-    think(RootPosition, infinite, ponder, time[RootPosition.side_to_move()],
-          inc[RootPosition.side_to_move()], movesToGo, depth, nodes, moveTime,
-          searchMoves);
+    think(RootPosition, infinite, ponder, RootPosition.side_to_move(), time,
+          inc, movesToGo, depth, nodes, moveTime, searchMoves);
   }
 }