From e3b03f13b3798389c7ad5e09564a7e662ac34237 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Mon, 22 Dec 2008 12:10:15 +0100 Subject: [PATCH] Passed pawns: consider enemy rooks or queens from behind Merged from Glaurung 2.2 Signed-off-by: Marco Costalba --- src/evaluate.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index cf164cda..12329fcd 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -936,6 +936,13 @@ namespace { b2 = squares_in_front_of(us, s); b3 = b2 & ei.attacked_by(them); b4 = b2 & ei.attacked_by(us); + + // If there is an enemy rook or queen attacking the pawn from behind, + // add all X-ray attacks by the rook or queen. + if(bit_is_set(ei.attacked_by(them,ROOK)|ei.attacked_by(them,QUEEN),s) + && squares_behind(us, s) & pos.rooks_and_queens(them)) + b3 = b2; + if((b2 & pos.pieces_of_color(them)) == EmptyBoardBB) { // There are no enemy pieces in the pawn's path! Are any of the // squares in the pawn's path attacked by the enemy? -- 2.39.2