- const Value EndgameQueenMobilityBonus[] = {
- // 0 1 2 3 4 5 6 7
- V(-20),V(-15),V(-10), V(-5), V( 0), V( 5), V(10), V(15),
- // 8 9 10 11 12 13 14 15
- V( 19), V(23), V(27), V(29), V(30), V(30), V(30), V(30),
- // 16 17 18 19 20 21 22 23
- V( 30), V(30), V(30), V(30), V(30), V(30), V(30), V(30),
- // 24 25 26 27 28 29 30 31
- V( 30), V(30), V(30), V(30), V(30), V(30), V(30), V(30)
- };
-
- // Outpost bonuses for knights and bishops, indexed by square (from white's
- // point of view).
- const Value KnightOutpostBonus[64] = {
- // A B C D E F G H
- V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), // 1
- V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), // 2
- V(0), V(0), V(5),V(10),V(10), V(5), V(0), V(0), // 3
- V(0), V(5),V(20),V(30),V(30),V(20), V(5), V(0), // 4
- V(0),V(10),V(30),V(40),V(40),V(30),V(10), V(0), // 5
- V(0), V(5),V(20),V(20),V(20),V(20), V(5), V(0), // 6
- V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), // 7
- V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0) // 8
- };
-
- const Value BishopOutpostBonus[64] = {
- // A B C D E F G H
- V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), // 1
- V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), // 2
- V(0), V(0), V(5), V(5), V(5), V(5), V(0), V(0), // 3
- V(0), V(5),V(10),V(10),V(10),V(10), V(5), V(0), // 4
- V(0),V(10),V(20),V(20),V(20),V(20),V(10), V(0), // 5
- V(0), V(5), V(8), V(8), V(8), V(8), V(5), V(0), // 6
- V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), // 7
- V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0) // 8
- };
-
- // Bonus for unstoppable passed pawns
- const Value UnstoppablePawnValue = Value(0x500);