X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=77821a3ad3dde342e5981638dab3862cf6680110;hp=71335c1bf3e3a9c52492aca1d7db949a5378ec6e;hb=b1929960f9b73cb8fcc86fdbdf7a8d2d1de4fc53;hpb=8447248705bc6cf91fc8cdbb519c31925862ea74 diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 71335c1b..77821a3a 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -812,9 +812,12 @@ namespace { Square blockSq = s + pawn_push(Us); // Adjust bonus based on kings proximity - ebonus -= Value(square_distance(pos.king_square(Us), blockSq) * 3 * rr); - ebonus -= Value(square_distance(pos.king_square(Us), blockSq + pawn_push(Us)) * rr); ebonus += Value(square_distance(pos.king_square(Them), blockSq) * 6 * rr); + ebonus -= Value(square_distance(pos.king_square(Us), blockSq) * 3 * rr); + + // If blockSq is not the queening square then consider also a second push + if (square_rank(blockSq) != (Us == WHITE ? RANK_8 : RANK_1)) + ebonus -= Value(square_distance(pos.king_square(Us), blockSq + pawn_push(Us)) * rr); // If the pawn is free to advance, increase bonus if (pos.square_is_empty(blockSq))