-using std::cout;
-using std::endl;
-
-Key Position::zobrist[2][8][64];
-Key Position::zobEp[8];
-Key Position::zobCastle[16];
-Key Position::zobSideToMove;
-Key Position::zobExclusion;
-
-Score Position::pieceSquareTable[16][64];
-
-// Material values arrays, indexed by Piece
-const Value PieceValueMidgame[17] = {
- VALUE_ZERO,
- PawnValueMidgame, KnightValueMidgame, BishopValueMidgame,
- RookValueMidgame, QueenValueMidgame,
- VALUE_ZERO, VALUE_ZERO, VALUE_ZERO,
- PawnValueMidgame, KnightValueMidgame, BishopValueMidgame,
- RookValueMidgame, QueenValueMidgame
-};
-
-const Value PieceValueEndgame[17] = {
- VALUE_ZERO,
- PawnValueEndgame, KnightValueEndgame, BishopValueEndgame,
- RookValueEndgame, QueenValueEndgame,
- VALUE_ZERO, VALUE_ZERO, VALUE_ZERO,
- PawnValueEndgame, KnightValueEndgame, BishopValueEndgame,
- RookValueEndgame, QueenValueEndgame
-};
-
-// To convert a Piece to and from a FEN char
-static const string PieceToChar(" PNBRQK pnbrqk");
-
-
-/// CheckInfo c'tor
-
-CheckInfo::CheckInfo(const Position& pos) {
-
- Color them = ~pos.side_to_move();
- ksq = pos.king_square(them);
-
- pinned = pos.pinned_pieces();
- dcCandidates = pos.discovered_check_candidates();
-
- checkSq[PAWN] = pos.attacks_from<PAWN>(ksq, them);
- checkSq[KNIGHT] = pos.attacks_from<KNIGHT>(ksq);
- checkSq[BISHOP] = pos.attacks_from<BISHOP>(ksq);
- checkSq[ROOK] = pos.attacks_from<ROOK>(ksq);
- checkSq[QUEEN] = checkSq[BISHOP] | checkSq[ROOK];
- checkSq[KING] = 0;