]> git.sesse.net Git - stockfish/blobdiff - src/evaluate.cpp
Scale eval when down to only one pawn
[stockfish] / src / evaluate.cpp
index 51d9b4290e6d48b3b324de5e6c459d5fd9d824a2..b43ab7e5be1a387f34c296f5a1afb39e17d38cf3 100644 (file)
@@ -358,9 +358,9 @@ Value do_evaluate(const Position& pos) {
 
   // If we don't already have an unusual scale factor, check for opposite
   // colored bishop endgames, and use a lower scale for those.
-  if (   ei.mi->game_phase() < PHASE_MIDGAME
-      && pos.opposite_bishops()
-      && sf == SCALE_FACTOR_NORMAL)
+  if (    ei.mi->game_phase() < PHASE_MIDGAME
+      &&  pos.opposite_bishops()
+      && (sf == SCALE_FACTOR_NORMAL || sf == SCALE_FACTOR_ONEPAWN))
   {
       // Ignoring any pawns, do both sides only have a single bishop and no
       // other pieces?
@@ -375,7 +375,7 @@ Value do_evaluate(const Position& pos) {
       else
           // Endgame with opposite-colored bishops, but also other pieces. Still
           // a bit drawish, but not as drawish as with only the two bishops.
-           sf = ScaleFactor(50);
+           sf = ScaleFactor(50 * sf / SCALE_FACTOR_NORMAL);
   }
 
   Value v = interpolate(score, ei.mi->game_phase(), sf);