]> git.sesse.net Git - stockfish/blobdiff - src/pawns.cpp
Bonus for file distance of the outermost pawns
[stockfish] / src / pawns.cpp
index 37db673f2ff2ede1b03e62808ce3db223d7f29c5..39bd689f2e30c921c60030a5287d5f6ec8b84489 100644 (file)
@@ -57,6 +57,9 @@ namespace {
     S( 0, 0), S( 6, 13), S(6,13), S(14,29),
     S(34,68), S(83,166), S(0, 0), S( 0, 0) };
 
+  // Bonus for file distance of the two outermost pawns
+  const Score PawnsFileSpan = S(0, 10);
+
   // Weakness of our pawn shelter in front of the king indexed by [rank]
   const Value ShelterWeakness[RANK_NB] =
   { V(100), V(0), V(27), V(73), V(92), V(101), V(101) };
@@ -181,6 +184,14 @@ namespace {
         }
     }
 
+    // In endgame it's better to have pawns on both wings. So give a bonus according
+    // to file distance between left and right outermost pawns.
+    if (pos.count<PAWN>(Us) > 1)
+    {
+        b = ~e->semiopenFiles[Us] & 0xFF;
+        value += PawnsFileSpan * int(msb(b) - lsb(b));
+    }
+
     return value;
   }