1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 00:33:09 +00:00

Pinned pieces affect king safety

Here the new idea is to link pinned pieces
with king safety.

Passed both STC
LLR: 2.96 (-2.94,2.94) [-1.50,4.50]
Total: 10047 W: 1867 L: 1737 D: 6443

And LTC
LLR: 2.97 (-2.94,2.94) [0.00,6.00]
Total: 10419 W: 1692 L: 1543 D: 7184

bench: 8325087
This commit is contained in:
Stefan Geschwentner 2014-03-28 08:41:50 +01:00 committed by Marco Costalba
parent c7cf45241c
commit af0c13ba6a

View file

@ -204,6 +204,8 @@ namespace {
const int BishopCheck = 2;
const int KnightCheck = 3;
const int UnsupportedPinnedPiece = 2;
// KingDanger[Color][attackUnits] contains the actual king danger weighted
// scores, indexed by color and by a calculated integer number.
Score KingDanger[COLOR_NB][128];
@ -693,6 +695,10 @@ Value do_evaluate(const Position& pos) {
if (b)
attackUnits += KnightCheck * popcount<Max15>(b);
// Penalty for pinned pieces not defended by a pawn
if (ei.pinnedPieces[Us] & ~ei.attackedBy[Us][PAWN])
attackUnits += UnsupportedPinnedPiece;
// To index KingDanger[] attackUnits must be in [0, 99] range
attackUnits = std::min(99, std::max(0, attackUnits));