+CheckInfo::CheckInfo(const Position& pos) {
+
+ Color us = pos.side_to_move();
+ Color them = opposite_color(us);
+
+ ksq = pos.king_square(them);
+ dc = pos.discovered_check_candidates(us);
+
+ 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] = EmptyBoardBB;
+}
+