X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fpawns.cpp;h=39bd689f2e30c921c60030a5287d5f6ec8b84489;hb=cf0a2a26a9e2640dc86b26a998fb7a71a5c20b90;hp=37db673f2ff2ede1b03e62808ce3db223d7f29c5;hpb=431c3ac485386cc10413fc8a3c7d338dcc71602d;p=stockfish diff --git a/src/pawns.cpp b/src/pawns.cpp index 37db673f..39bd689f 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -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(Us) > 1) + { + b = ~e->semiopenFiles[Us] & 0xFF; + value += PawnsFileSpan * int(msb(b) - lsb(b)); + } + return value; }