{ V( 1), V( 64), V( 143), V(26), V(13) },
{ V( 1), V( 47), V( 110), V(44), V(24) },
{ V( 0), V( 72), V( 127), V(50), V(31) } },
- { { V( 0), V( 0), V( 79), V(23), V( 1) }, // BlockedByPawn
- { V( 0), V( 0), V( 148), V(27), V( 2) },
- { V( 0), V( 0), V( 161), V(16), V( 1) },
- { V( 0), V( 0), V( 171), V(22), V(15) } },
+ { { V( 0), V( 0), V( 19), V(23), V( 1) }, // BlockedByPawn
+ { V( 0), V( 0), V( 88), V(27), V( 2) },
+ { V( 0), V( 0), V( 101), V(16), V( 1) },
+ { V( 0), V( 0), V( 111), V(22), V(15) } },
{ { V(22), V( 45), V( 104), V(62), V( 6) }, // Unblocked
{ V(31), V( 30), V( 99), V(39), V(19) },
{ V(23), V( 29), V( 96), V(41), V(15) },
Value Entry::shelter_storm(const Position& pos, Square ksq) {
constexpr Color Them = (Us == WHITE ? BLACK : WHITE);
- constexpr Bitboard ShelterMask =
- Us == WHITE ? make_bitboard(SQ_A2, SQ_B3, SQ_C2, SQ_F2, SQ_G3, SQ_H2)
- : make_bitboard(SQ_A7, SQ_B6, SQ_C7, SQ_F7, SQ_G6, SQ_H7);
- constexpr Bitboard StormMask =
- Us == WHITE ? make_bitboard(SQ_A3, SQ_C3, SQ_F3, SQ_H3)
- : make_bitboard(SQ_A6, SQ_C6, SQ_F6, SQ_H6);
enum { BlockedByKing, Unopposed, BlockedByPawn, Unblocked };
[d][rkThem];
}
- if (popcount((ourPawns & ShelterMask) | (theirPawns & StormMask)) == 5)
- safety += Value(300);
-
return safety;
}