Simplify backward pawn definition
authorAlain SAVARD <support@multicim.com>
Mon, 26 Jan 2015 16:05:53 +0000 (11:05 -0500)
committerJoona Kiiski <joona.kiiski@gmail.com>
Wed, 28 Jan 2015 21:29:04 +0000 (21:29 +0000)
Make use of 'lever' attribute

No functional change

Resolves #234

src/pawns.cpp

index eda707f..798bc0a 100644 (file)
@@ -144,12 +144,11 @@ namespace {
         lever       =   theirPawns & pawnAttacksBB[s];
 
         // Test for backward pawn.
-        // If the pawn is passed, isolated, or connected it cannot be
+        // If the pawn is passed, isolated, connected or a lever it cannot be
         // backward. If there are friendly pawns behind on adjacent files
-        // or if it can capture an enemy pawn it cannot be backward either.
-        if (   (passed | isolated | connected)
-            || (ourPawns & pawn_attack_span(Them, s))
-            || (pos.attacks_from<PAWN>(s, Us) & theirPawns))
+        // it cannot be backward either.
+        if (   (passed | isolated | connected | lever)
+            || (ourPawns & pawn_attack_span(Them, s)))
             backward = false;
         else
         {