X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fevaluate.cpp;h=29d71ea9e0cce28078ccf4a715521d85b3f6bbac;hb=9e8bf82350002b826e40581100dbbcd1d65c796e;hp=c2b94b75365885d53d083ce2badfb6eacb6ebdd6;hpb=cf50e265faf3a331db775db04954c3feb29fd756;p=stockfish diff --git a/src/evaluate.cpp b/src/evaluate.cpp index c2b94b75..29d71ea9 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -787,6 +787,12 @@ namespace { sf = ScaleFactor(50 * sf / SCALE_FACTOR_NORMAL); } + // Stealmate detection + Color stm = pos.side_to_move(); + if ( (ei.attackedBy[stm][ALL_PIECES] == ei.attackedBy[stm][KING]) + && (!(ei.attackedBy[stm][KING] & ~ei.attackedBy[~stm][ALL_PIECES]))) + sf = SCALE_FACTOR_DRAW; + // Interpolate between a middlegame and a (scaled by 'sf') endgame score Value v = mg_value(score) * int(ei.mi->game_phase()) + eg_value(score) * int(PHASE_MIDGAME - ei.mi->game_phase()) * sf / SCALE_FACTOR_NORMAL;