X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=a38bbff65a6eef38323da1a611cd56ff70e27ee1;hp=588f76f3e6b789c6d8d500c56aba12eaf61718c7;hb=f40e481fd63d056cbdad78c2c3fcdad0ff3556d9;hpb=9645e8e4e76aebc4b3099b20846c14e18768cab4 diff --git a/src/search.cpp b/src/search.cpp index 588f76f3..a38bbff6 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -38,6 +38,7 @@ #include "lock.h" #include "san.h" #include "search.h" +#include "timeman.h" #include "thread.h" #include "tt.h" #include "ucioption.h" @@ -473,32 +474,7 @@ bool think(const Position& pos, bool infinite, bool ponder, int time[], int incr int myIncrement = increment[pos.side_to_move()]; if (UseTimeManagement) { - if (!movesToGo) // Sudden death time control - { - if (myIncrement) - { - MaxSearchTime = myTime / 30 + myIncrement; - AbsoluteMaxSearchTime = Max(myTime / 4, myIncrement - 100); - } - else // Blitz game without increment - { - MaxSearchTime = myTime / 30; - AbsoluteMaxSearchTime = myTime / 8; - } - } - else // (x moves) / (y minutes) - { - if (movesToGo == 1) - { - MaxSearchTime = myTime / 2; - AbsoluteMaxSearchTime = (myTime > 3000)? (myTime - 500) : ((myTime * 3) / 4); - } - else - { - MaxSearchTime = myTime / Min(movesToGo, 20); - AbsoluteMaxSearchTime = Min((4 * myTime) / movesToGo, myTime / 3); - } - } + calc_search_times(myTime, myIncrement, movesToGo, pos.startpos_ply_counter(), MaxSearchTime, AbsoluteMaxSearchTime); if (get_option_value_bool("Ponder")) { @@ -1062,7 +1038,7 @@ namespace { // Refresh tte entry to avoid aging TT.store(posKey, tte->value(), tte->type(), tte->depth(), ttMove, tte->static_value(), tte->king_danger()); - ss->currentMove = ttMove; // Can be MOVE_NONE + ss->bestMove = ttMove; // Can be MOVE_NONE return value_from_tt(tte->value(), ply); } @@ -1176,7 +1152,7 @@ namespace { if (nullValue == value_mated_in(ply + 2)) mateThreat = true; - threatMove = (ss+1)->currentMove; + threatMove = (ss+1)->bestMove; if ( depth < ThreatDepth && (ss-1)->reduction && connected_moves(pos, (ss-1)->currentMove, threatMove)) @@ -1460,7 +1436,7 @@ namespace { if (!PvNode && tte && ok_to_use_TT(tte, depth, beta, ply)) { - ss->currentMove = ttMove; // Can be MOVE_NONE + ss->bestMove = ttMove; // Can be MOVE_NONE return value_from_tt(tte->value(), ply); }