#include <fixedDepthSolverExt.h>
構成 | |
struct | SetProofPieces |
Public メソッド | |
FixedDepthSolverExt () | |
FixedDepthSolverExt (NumEffectState &s) | |
template<Player P> | |
const ProofDisproof | hasCheckmateMove (int depth, Move &best_move, PieceStand &proof_pieces) |
stateがPから詰む局面かを返す. | |
template<Player P> | |
const ProofDisproof | hasCheckmateWithGuide (int depth, Move &guide, PieceStand &proof_pieces) |
guide を最初に試す. guide.isNormal() である必要はあるが,その局面でvalid でなくても良い | |
template<Player P> | |
const ProofDisproof | hasEscapeMove (Move last_move, int depth, PieceStand &proof_pieces) |
stateがPによって詰んでいる局面かを返す. | |
template<Player P> | |
const ProofDisproof | hasEscapeByMove (Move next_move, int depth, Move &check_move, PieceStand &proof_pieces) |
next_move を指して逃げられるかどうかを調べる | |
const ProofDisproof | hasCheckmateMoveOfTurn (int depth, Move &best_move, PieceStand &proof_pieces) |
const ProofDisproof | hasCheckmateWithGuideOfTurn (int depth, Move &guide, PieceStand &proof_pieces) |
const ProofDisproof | hasEscapeByMoveOfTurn (Move next_move, int depth, Move &check_move, PieceStand &proof_pieces) |
fixedDepthSolverExt.h の 11 行で定義されています。
osl::checkmate::FixedDepthSolverExt::FixedDepthSolverExt | ( | ) |
fixedDepthSolverExt.cc の 37 行で定義されています。
osl::checkmate::FixedDepthSolverExt::FixedDepthSolverExt | ( | NumEffectState & | s | ) | [explicit] |
fixedDepthSolverExt.cc の 42 行で定義されています。
template const checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateMove< WHITE > | ( | int | depth, | |
Move & | best_move, | |||
PieceStand & | proof_pieces | |||
) |
stateがPから詰む局面かを返す.
stateの手番はPと一致しているという前提
fixedDepthSolverExt.cc の 113 行で定義されています。
参照元 osl::checkmate::Dfpn::attack(), と osl::checkmate::Dfpn::proofOracleAttack().
const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateMoveOfTurn | ( | int | depth, | |
Move & | best_move, | |||
PieceStand & | proof_pieces | |||
) |
fixedDepthSolverExt.cc の 63 行で定義されています。
参照先 osl::checkmate::FixedDepthSearcher::state, と osl::SimpleState::turn().
const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateWithGuide | ( | int | depth, | |
Move & | guide, | |||
PieceStand & | proof_pieces | |||
) |
guide を最初に試す. guide.isNormal() である必要はあるが,その局面でvalid でなくても良い
fixedDepthSolverExt.cc の 95 行で定義されています。
参照先 osl::Move::from(), osl::Move::isDrop(), osl::Move::isNormal(), osl::Piece::isPtype(), osl::KING, osl::Move::newCapture(), osl::SimpleState::pieceOnBoard(), osl::Move::ptype(), osl::checkmate::FixedDepthSearcher::state, と osl::Move::to().
const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateWithGuideOfTurn | ( | int | depth, | |
Move & | guide, | |||
PieceStand & | proof_pieces | |||
) |
fixedDepthSolverExt.cc の 73 行で定義されています。
参照先 osl::checkmate::FixedDepthSearcher::state, と osl::SimpleState::turn().
template const checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeByMove< WHITE > | ( | Move | next_move, | |
int | depth, | |||
Move & | check_move, | |||
PieceStand & | proof_pieces | |||
) |
next_move を指して逃げられるかどうかを調べる
check_move | 詰の場合の攻撃側の指手 | |
depth | next_move を指した後からカウント |
fixedDepthSolverExt.cc の 49 行で定義されています。
参照先 osl::alt(), osl::NumEffectState::makeUnmakeMove(), と osl::checkmate::FixedDepthSearcher::state.
参照元 osl::checkmate::Dfpn::defense(), と osl::checkmate::Dfpn::proofOracleDefense().
const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeByMoveOfTurn | ( | Move | next_move, | |
int | depth, | |||
Move & | check_move, | |||
PieceStand & | proof_pieces | |||
) |
fixedDepthSolverExt.cc の 83 行で定義されています。
参照先 osl::checkmate::FixedDepthSearcher::state, と osl::SimpleState::turn().
template const checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeMove< WHITE > | ( | Move | last_move, | |
int | depth, | |||
PieceStand & | proof_pieces | |||
) |
stateがPによって詰んでいる局面かを返す.
王手がかかっていない時には呼ばない stateの手番はalt(P)と一致しているという前提 stateはPによって王手がかかっているという前提
last_move | 打ち歩詰めの判定に必要 |
fixedDepthSolverExt.cc の 120 行で定義されています。