+ // ThreatBonus[][] contains bonus according to which piece type
+ // attacks which one.
+ const Value MidgameThreatBonus[8][8] = {
+ V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), // not used
+ V(0),V(30), V(0),V(50), V(70), V(70), V(0), V(0), // KNIGHT attacks
+ V(0),V(30),V(50), V(0), V(70), V(70), V(0), V(0), // BISHOP attacks
+ V(0),V(20),V(40),V(40), V(0), V(50), V(0), V(0), // ROOK attacks
+ V(0),V(40),V(40),V(40), V(40), V(0), V(0), V(0), // QUEEN attacks
+ V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), // not used
+ V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), // not used
+ V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0) // not used
+ };
+
+ const Value EndgameThreatBonus[8][8] = {
+ V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), // not used
+ V(0),V(40), V(0),V(50),V(100),V(100), V(0), V(0), // KNIGHT attacks
+ V(0),V(40),V(50), V(0),V(100),V(100), V(0), V(0), // BISHOP attacks
+ V(0),V(30),V(50),V(50), V(0), V(50), V(0), V(0), // ROOK attacks
+ V(0),V(40),V(40),V(40), V(40), V(0), V(0), V(0), // QUEEN attacks
+ V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), // not used
+ V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), // not used
+ V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0) // not used
+ };
+
+ // ThreatedByPawnPenalty[] contains a penalty according to which piece
+ // type is attacked by an enemy pawn.
+ const Value MidgameThreatedByPawnPenalty[8] = {
+ V(0), V(0), V(50), V(50), V(70), V(80), V(0), V(0)
+ };
+
+ const Value EndgameThreatedByPawnPenalty[8] = {
+ V(0), V(0), V(70), V(70), V(100), V(120), V(0), V(0)
+ };
+