VALUE_MATED_IN_MAX_PLY = -VALUE_MATE + MAX_PLY,
VALUE_ENSURE_INTEGER_SIZE_P = INT_MAX,
- VALUE_ENSURE_INTEGER_SIZE_N = INT_MIN
+ VALUE_ENSURE_INTEGER_SIZE_N = INT_MIN,
+
+ PawnValueMidgame = 198,
+ PawnValueEndgame = 258,
+ KnightValueMidgame = 817,
+ KnightValueEndgame = 846,
+ BishopValueMidgame = 836,
+ BishopValueEndgame = 857,
+ RookValueMidgame = 1270,
+ RookValueEndgame = 1278,
+ QueenValueMidgame = 2521,
+ QueenValueEndgame = 2558
};
enum PieceType {
#undef ENABLE_OPERATORS_ON
#undef ENABLE_SAFE_OPERATORS_ON
-const Value PawnValueMidgame = Value(198);
-const Value PawnValueEndgame = Value(258);
-const Value KnightValueMidgame = Value(817);
-const Value KnightValueEndgame = Value(846);
-const Value BishopValueMidgame = Value(836);
-const Value BishopValueEndgame = Value(857);
-const Value RookValueMidgame = Value(1270);
-const Value RookValueEndgame = Value(1278);
-const Value QueenValueMidgame = Value(2521);
-const Value QueenValueEndgame = Value(2558);
+namespace Zobrist {
+ extern Key psq[2][8][64]; // [color][pieceType][square]/[piece count]
+ extern Key enpassant[8]; // [file]
+ extern Key castle[16]; // [castleRight]
+ extern Key side;
+ extern Key exclusion;
+
+ void init();
+}
+
+extern Score pieceSquareTable[16][64];
+extern int SquareDistance[64][64];
extern const Value PieceValueMidgame[17]; // Indexed by Piece or PieceType
extern const Value PieceValueEndgame[17];
-extern int SquareDistance[64][64];
struct MoveStack {
Move move;