X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=f37820afcef975b2f5bb326b30bbe16588d4b6ea;hp=d92239c152cb2dfb80650fbb12a6425d908671de;hb=7756344d5d2b93970e7cd423f8cbf6fb1da11b74;hpb=843a6c43053ceb9cc79d29bf7c0d3a5d236e057e diff --git a/src/evaluate.cpp b/src/evaluate.cpp index d92239c1..f37820af 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -353,7 +353,7 @@ namespace { // Bonus for rook on an open or semi-open file if (pos.is_on_semiopen_file(Us, s)) - score += RookOnFile[bool(pos.is_on_semiopen_file(Them, s))]; + score += RookOnFile[pos.is_on_semiopen_file(Them, s)]; // Penalty when trapped by the king, even more if the king cannot castle else if (mob <= 3) @@ -662,7 +662,7 @@ namespace { || (pos.pieces(PAWN) & (s + Up))) bonus = bonus / 2; - score += bonus - PassedFile * std::min(f, ~f); + score += bonus - PassedFile * map_to_queenside(f); } if (T) @@ -769,8 +769,9 @@ namespace { && pos.non_pawn_material() == 2 * BishopValueMg) sf = 16 + 4 * pe->passed_count(); else - sf = std::min(40 + (pos.opposite_bishops() ? 2 : 7) * pos.count(strongSide), sf); + sf = std::min(sf, 36 + (pos.opposite_bishops() ? 2 : 7) * pos.count(strongSide)); + sf = std::max(0, sf - (pos.rule50_count() - 12) / 4 ); } return ScaleFactor(sf);