mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-19 16:46:30 +08:00
Add more detailed pawn shelter/storm evaluation
This commit is contained in:
@@ -58,6 +58,7 @@ namespace {
|
||||
CACHE_LINE_ALIGNMENT
|
||||
|
||||
int BSFTable[64];
|
||||
int MS1BTable[256];
|
||||
Bitboard RTable[0x19000]; // Storage space for rook attacks
|
||||
Bitboard BTable[0x1480]; // Storage space for bishop attacks
|
||||
|
||||
@@ -140,6 +141,26 @@ Square pop_1st_bit(Bitboard* b) {
|
||||
|
||||
#endif // !defined(USE_BSFQ)
|
||||
|
||||
#if !defined(USE_BSFQ)
|
||||
|
||||
Square last_1(Bitboard b) {
|
||||
int result = 0;
|
||||
if (b > 0xFFFFFFFF) {
|
||||
b >>= 32;
|
||||
result = 32;
|
||||
}
|
||||
if (b > 0xFFFF) {
|
||||
b >>= 16;
|
||||
result += 16;
|
||||
}
|
||||
if (b > 0xFF) {
|
||||
b >>= 8;
|
||||
result += 8;
|
||||
}
|
||||
return Square(result + MS1BTable[b]);
|
||||
}
|
||||
|
||||
#endif // !defined(USE_BSFQ)
|
||||
|
||||
/// bitboards_init() initializes various bitboard arrays. It is called during
|
||||
/// program initialization.
|
||||
@@ -196,6 +217,11 @@ void bitboards_init() {
|
||||
else
|
||||
BSFTable[((1ULL << i) * 0x218A392CD3D5DBFULL) >> 58] = i;
|
||||
|
||||
MS1BTable[0] = 0;
|
||||
for (int i = 0, k = 1; i < 8; i++)
|
||||
for (int j = 0; j < (1 << i); j++)
|
||||
MS1BTable[k++] = i;
|
||||
|
||||
int steps[][9] = { {}, { 7, 9 }, { 17, 15, 10, 6, -6, -10, -15, -17 },
|
||||
{}, {}, {}, { 9, 7, -7, -9, 8, 1, -1, -8 } };
|
||||
|
||||
|
||||
Reference in New Issue
Block a user