From 935fc09fd49328adfeaad372a5f4f2c48d8caf44 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Mon, 26 Jul 2010 06:07:34 +0100 Subject: [PATCH] Two small fixes in passed pawns evaluation The one in evaluate_passed_pawns() is just a micro optimization, the other in evaluate_unstoppable_pawns() is indeed a fix, although almost unmeasurable in real games. Bugs report and fixes by Marek Kwiatkowski Signed-off-by: Marco Costalba --- src/evaluate.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 0249ee3b..74e70fa2 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -821,7 +821,7 @@ namespace { // add all X-ray attacks by the rook or queen. Otherwise consider only // the squares in the pawn's path attacked or occupied by the enemy. if ( (squares_behind(Us, s) & pos.pieces(ROOK, QUEEN, Them)) - && (squares_behind(Us, s) & pos.pieces(ROOK, QUEEN, Them) & pos.attacks_from(s))) + && (squares_behind(Us, s) & pos.pieces(ROOK, QUEEN, Them) & pos.attacks_from(s))) unsafeSquares = squaresToQueen; else unsafeSquares = squaresToQueen & (ei.attacked_by(Them) | pos.pieces_of_color(Them)); @@ -902,7 +902,7 @@ namespace { if (d < 0 || pathDefended) { - int mtg = RANK_8 - relative_rank(c, s); + int mtg = RANK_8 - relative_rank(c, s) - int(relative_rank(c, s) == RANK_2); int blockerCount = count_1s_max_15(squares_in_front_of(c, s) & pos.occupied_squares()); mtg += blockerCount; d += blockerCount; -- 2.39.2