SCALE_FACTOR_NONE = 255
};
+enum CastleRight {
+ CASTLES_NONE = 0,
+ WHITE_OO = 1,
+ BLACK_OO = 2,
+ WHITE_OOO = 4,
+ BLACK_OOO = 8,
+ ALL_CASTLES = 15
+};
+
/// Score enum keeps a midgame and an endgame value in a single
/// integer (enum), first LSB 16 bits are used to store endgame
extern const Value PieceValueMidgame[17];
extern const Value PieceValueEndgame[17];
+extern int SquareDistance[64][64];
inline Value piece_value_midgame(Piece p) {
return PieceValueMidgame[p];
return Piece((c << 3) | pt);
}
-inline PieceType type_of_piece(Piece p) {
+inline PieceType piece_type(Piece p) {
return PieceType(p & 7);
}
-inline Color color_of_piece(Piece p) {
+inline Color piece_color(Piece p) {
return Color(p >> 3);
}
}
inline int square_distance(Square s1, Square s2) {
- return Max(file_distance(s1, s2), rank_distance(s1, s2));
+ return SquareDistance[s1][s2];
}
inline char file_to_char(File f) {