3 #ifndef OSL_CHECKMATE_FIXED_DEPTH_SERCHER_H 4 #define OSL_CHECKMATE_FIXED_DEPTH_SERCHER_H 73 template <Player P,
class SetPieces,
bool HasGu
ide>
75 template <Player P,
class SetPieces,
bool HasGu
ide>
77 template <Player P,
class SetPieces>
84 template <Player P,
class SetPieces>
87 Square target_position)
const;
93 return attack<P,NoProofPieces,false>(depth, best_move, proof_pieces);
99 return hasCheckmateMove<P>(depth, checkmate_move);
106 return defense<P,NoProofPieces>(last_move, depth, proof_pieces);
118 template <Player Defense>
119 void generateBlockingWhenLiberty0(
Piece defense_king,
Square attack_from,
121 template <Player Defense>
122 int blockEstimation(
Square attack_from,
Square defense_king)
const;
深さ固定で,その深さまで depth first searchで読む詰将棋.
const PieceStand stand(Player P) const
FixedDepthSearcher(NumEffectState &s)
const ProofDisproof hasEscapeMove(Move last_move, int depth)
const ProofDisproof hasCheckmateMove(int depth, Move &best_move)
static void setAttackLeaf(Move, PieceStand &)
static void setLeaf(const NumEffectState &, Player, PieceStand, PieceStand &)
static void updateMax(PieceStand, PieceStand &)
static ProofDisproof attackEstimation(const NumEffectState &, Player, King8Info)
void setState(NumEffectState &s)
証明数(proof number)と反証数(disproof number).
static void clear(PieceStand &)
const ProofDisproof hasCheckmateMove(int depth)
static void attack(Move, PieceStand, PieceStand &)
static void addMonopolizedPieces(const NumEffectState &, Player, PieceStand, PieceStand &)