StateInfo* previous;
};
+class TranspositionTable;
/// The position data structure. A position consists of the following data:
///
static bool pawn_is_isolated(Bitboard ourPawns, Square s);
static bool pawn_is_doubled(Bitboard ourPawns, Color c, Square s);
- // Open and half-open files
- static bool file_is_open(Bitboard pawns, File f);
- static bool file_is_half_open(Bitboard pawns, File f);
-
// Weak squares
bool square_is_weak(Square s, Color c) const;
void undo_move(Move m);
void do_null_move(StateInfo& st);
void undo_null_move();
+ void setTranspositionTable(TranspositionTable* tt);
// Static exchange evaluation
int see(Square from, Square to) const;
File initialKFile, initialKRFile, initialQRFile;
StateInfo startState;
StateInfo* st;
+ TranspositionTable* TT;
// Static variables
static int castleRightsMask[64];
return ourPawns & squares_behind(c, s);
}
-inline bool Position::file_is_open(Bitboard pawns, File f) {
- return !(pawns & file_bb(f));
-}
-
-inline bool Position::file_is_half_open(Bitboard pawns, File f) {
- return !(pawns & file_bb(f));
-}
-
inline bool Position::square_is_weak(Square s, Color c) const {
return !(pawns(c) & outpost_mask(opposite_color(c), s));
}