gets away with such low scores for pawn weaknesses? This to me seems against the grain of all other programs I have had the pleasure to study, be it Stockfish or Fruit, or Crafty etc..
From Gull:
Code: Select all
const int PawnUP[8] = {0, Compose(2, 3), Compose(4, 4), Compose(6, 5), Compose(7, 5), Compose(8, 6), 0};
const int PawnUR[8] = {0, 0, Compose(2, 2), Compose(3, 2), Compose(4, 3), Compose(4, 3), Compose(4, 3), 0};
const int PawnWeak[8] = {0, Compose(15, 10), Compose(10, 7), Compose(7, 5), Compose(7, 5), Compose(10, 7), 0, 0};
const int PawnWeakOp[8] = {0, Compose(15, 0), Compose(12, 0), Compose(10, 0), Compose(8, 0), Compose(6, 0), 0, 0};
const int PawnIsolated[8] = {0, Compose(2, 3), Compose(4, 4), Compose(6, 5), Compose(7, 5), Compose(8, 6), Compose(8, 6), 0};
#define PawnDoubled Compose(5, 7)
Code: Select all
// Doubled pawn penalty by file
const Score DoubledPawnPenalty[8] = {
S(13, 43), S(20, 48), S(23, 48), S(23, 48),
S(23, 48), S(23, 48), S(20, 48), S(13, 43)
};
// Isolated pawn penalty by file
const Score IsolatedPawnPenalty[8] = {
S(25, 30), S(36, 35), S(40, 35), S(40, 35),
S(40, 35), S(40, 35), S(36, 35), S(25, 30)
};
// Backward pawn penalty by file
const Score BackwardPawnPenalty[8] = {
S(20, 28), S(29, 31), S(33, 31), S(33, 31),
S(33, 31), S(33, 31), S(29, 31), S(20, 28)
};