Also fix dimension of UnpairedPawnsTable[] to accomodate the
case in which we have 8 unpaired pawns, i.e. only one side has
pawns, the other side has no pawns.
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
// UnpairedPawnsTable[] gives a score according to the number
// of panws that do not have an enemy pawn in front of them.
// UnpairedPawnsTable[] gives a score according to the number
// of panws that do not have an enemy pawn in front of them.
- const int UnpairedPawnsTable[8] = { 32, 48, 64, 80, 96, 112, 128, 128 };
+ const int UnpairedPawnsTable[16] = { 32, 48, 64, 80, 96, 112, 128, 128, 128 };
+
+ // PawnsQtyTable[] gives a score according to the number of panws
+ const int PawnsQtyTable[16] = { 16, 16, 16, 16, 16, 16, 16, 16, 16 };
// Pawn storm tables for positions with opposite castling
const int QStormTable[64] = {
// Pawn storm tables for positions with opposite castling
const int QStormTable[64] = {
}
// Calculate a scale factor to be used to evaluate if position is drawish
}
// Calculate a scale factor to be used to evaluate if position is drawish
- pi->factor[Us] = UnpairedPawnsTable[unpairedPawnsNum];
+ pi->factor[Us] = UnpairedPawnsTable[unpairedPawnsNum] * PawnsQtyTable[pos.piece_count(Us, PAWN)] / 16;