mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 17:16:33 +08:00
Evaluate mobility of pinned pieces exactly
Previously some squares could be "incorrectly" awarded to a pinned piece. e.g. in 3k4/1q6/3b4/3Q4/8/5K2/B7/8 b - - 0 1 the black bishop get 4 squares too many and the white queen gets 6. Passed both short TC. LLR: 2.97 (-2.94,2.94) [-1.50,4.50] Total: 4871 W: 934 L: 817 D: 3120 And long TC: LLR: 2.96 (-2.94,2.94) [0.00,6.00] Total: 38968 W: 6113 L: 5837 D: 27018 bench: 9282549
This commit is contained in:
committed by
Marco Costalba
parent
3ed86ed3f9
commit
091aff0445
@@ -45,6 +45,7 @@ Bitboard AdjacentFilesBB[FILE_NB];
|
||||
Bitboard InFrontBB[COLOR_NB][RANK_NB];
|
||||
Bitboard StepAttacksBB[PIECE_NB][SQUARE_NB];
|
||||
Bitboard BetweenBB[SQUARE_NB][SQUARE_NB];
|
||||
Bitboard LineBB[SQUARE_NB][SQUARE_NB];
|
||||
Bitboard DistanceRingsBB[SQUARE_NB][8];
|
||||
Bitboard ForwardBB[COLOR_NB][SQUARE_NB];
|
||||
Bitboard PassedPawnMask[COLOR_NB][SQUARE_NB];
|
||||
@@ -225,6 +226,9 @@ void Bitboards::init() {
|
||||
|
||||
for (Square s = s1 + delta; s != s2; s += delta)
|
||||
BetweenBB[s1][s2] |= s;
|
||||
|
||||
PieceType pc = (PseudoAttacks[BISHOP][s1] & s2) ? BISHOP : ROOK;
|
||||
LineBB[s1][s2] = (PseudoAttacks[pc][s1] & PseudoAttacks[pc][s2]) | s1 | s2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user