Bonus for pawn scrifice which create passed pawn
[stockfish] / src / pawns.cpp
index 17a9667..95d5fb4 100644 (file)
@@ -163,6 +163,13 @@ namespace {
             && popcount(phalanx)   >= popcount(leverPush))
             e->passedPawns[Us] |= s;
 
+        else if (    stoppers == SquareBB[s + Up]
+                 &&  relative_rank(Us, s) >= RANK_5
+                 && (b = (shift<Up>(supported) & ~theirPawns)))
+            while(b)
+                if(!more_than_one(theirPawns & PawnAttacks[Us][pop_lsb(&b)]))
+                    e->passedPawns[Us] |= s;
+
         // Score this pawn
         if (!neighbours)
             score -= Isolated[opposed];