X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fsearch.cpp;h=4d1a6af784d1e41217df9b29c3676c20a55dc6cd;hb=cedbd3332a4a1574e701bda098a9df1153e299c6;hp=c9a8f58204a4dc9ecddce0f4c3013e1f21b64afd;hpb=1ac417edb8451a7837e989a6621faf20300f0bf0;p=stockfish diff --git a/src/search.cpp b/src/search.cpp index c9a8f582..4d1a6af7 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -199,6 +199,8 @@ void Search::think() { Position& pos = RootPosition; Chess960 = pos.is_chess960(); Eval::RootColor = pos.side_to_move(); + Eval::ValueDraw[ Eval::RootColor] = VALUE_DRAW - Eval::ContemptFactor; + Eval::ValueDraw[~Eval::RootColor] = VALUE_DRAW + Eval::ContemptFactor; TimeMgr.init(Limits, pos.startpos_ply_counter(), pos.side_to_move()); TT.new_search(); H.clear(); @@ -538,7 +540,7 @@ namespace { { // Step 2. Check for aborted search and immediate draw if (Signals.stop || pos.is_draw() || ss->ply > MAX_PLY) - return Eval::ValueDrawContempt; + return Eval::ValueDraw[pos.side_to_move()]; // Step 3. Mate distance pruning. Even if we mate at the next move our score // would be at best mate_in(ss->ply+1), but if alpha is already bigger because @@ -1094,7 +1096,7 @@ split_point_start: // At split points actual search starts from here // Check for an instant draw or maximum ply reached if (pos.is_draw() || ss->ply > MAX_PLY) - return Eval::ValueDrawContempt; + return Eval::ValueDraw[pos.side_to_move()]; // Decide whether or not to include checks, this fixes also the type of // TT entry depth that we are going to use. Note that in qsearch we use