+ // ThreatBonus[attacking][attacked] contains bonus according to which
+ // piece type attacks which one.
+ const Score ThreatBonus[8][8] = {
+ {},
+ { S(0, 0), S(18,37), S( 0, 0), S(37,47), S(55,97), S(55,97) }, // KNIGHT
+ { S(0, 0), S(18,37), S(37,47), S( 0, 0), S(55,97), S(55,97) }, // BISHOP
+ { S(0, 0), S( 9,27), S(27,47), S(27,47), S( 0, 0), S(37,47) }, // ROOK
+ { S(0, 0), S(27,37), S(27,37), S(27,37), S(27,37), S( 0, 0) }, // QUEEN
+ {}, {}, {}
+ };
+
+ // ThreatedByPawnPenalty[] contains a penalty according to which piece
+ // type is attacked by an enemy pawn.
+ const Score ThreatedByPawnPenalty[8] = {
+ S(0, 0), S(0, 0), S(56, 70), S(56, 70), S(76, 99), S(86, 118)
+ };
+
+ #undef S
+
+ // Bonus for unstoppable passed pawns