#include <fixedDepthSolverExt.h>
Classes | |
| struct | SetProofPieces |
Public Member Functions | |
| FixedDepthSolverExt () | |
| FixedDepthSolverExt (NumEffectState &s) | |
| template<Player P> | |
| const ProofDisproof | hasCheckmateMove (int depth, Move &best_move, PieceStand &proof_pieces) |
| stateがPから詰む局面かを返す. More... | |
| template<Player P> | |
| const ProofDisproof | hasCheckmateWithGuide (int depth, Move &guide, PieceStand &proof_pieces) |
| guide を最初に試す. guide.isNormal() である必要はあるが,その局面でvalid でなくても良い More... | |
| template<Player P> | |
| const ProofDisproof | hasEscapeMove (Move last_move, int depth, PieceStand &proof_pieces) |
| stateがPによって詰んでいる局面かを返す. More... | |
| template<Player P> | |
| const ProofDisproof | hasEscapeByMove (Move next_move, int depth, Move &check_move, PieceStand &proof_pieces) |
| next_move を指して逃げられるかどうかを調べる More... | |
| 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) |
| template<osl::Player P> | |
| const osl::checkmate::ProofDisproof | hasEscapeByMove (Move next_move, int depth, Move &check_move, PieceStand &proof_pieces) |
| template<osl::Player P> | |
| const osl::checkmate::ProofDisproof | hasCheckmateWithGuide (int depth, Move &guide, PieceStand &proof_pieces) |
| template<osl::Player P> | |
| const osl::checkmate::ProofDisproof | hasCheckmateMove (int depth, Move &best_move, PieceStand &proof_pieces) |
| template<osl::Player P> | |
| const osl::checkmate::ProofDisproof | hasEscapeMove (Move last_move, int depth, PieceStand &proof_pieces) |
Public Member Functions inherited from osl::checkmate::FixedDepthSearcher | |
| FixedDepthSearcher () | |
| FixedDepthSearcher (NumEffectState &s) | |
| void | setState (NumEffectState &s) |
| int | getCount () const |
| const PieceStand | stand (Player P) const |
| template<Player P, class SetPieces , bool HasGuide> | |
| const ProofDisproof | attack (int depth, Move &best_move, PieceStand &proof_pieces) |
| template<Player P, class SetPieces , bool HasGuide> | |
| const ProofDisproof | attackMayUnsafe (int depth, Move &best_move, PieceStand &proof_pieces) |
| template<Player P, class SetPieces > | |
| const ProofDisproof | defense (Move last_move, int depth, PieceStand &proof_pieces) |
| template<Player P> | |
| const ProofDisproof | hasCheckmateMove (int depth, Move &best_move) |
| template<Player P> | |
| const ProofDisproof | hasCheckmateMove (int depth) |
| template<Player P> | |
| const ProofDisproof | hasEscapeMove (Move last_move, int depth) |
| template<Player P> | |
| const ProofDisproof | hasEscapeByMove (Move next_move, int depth) |
| const ProofDisproof | hasCheckmateMoveOfTurn (int depth, Move &best_move) |
| const ProofDisproof | hasEscapeMoveOfTurn (Move last_move, int depth) |
| const ProofDisproof | hasEscapeByMoveOfTurn (Move next_move, int depth) |
| template<Player Defense> | |
| void | generateBlockingWhenLiberty0 (Piece defense_king, Square attack_from, CheckMoveVector &moves) const |
| 無駄合をなるべく生成しない,合駒生成 More... | |
| template<Player Defense> | |
| int | blockEstimation (Square attack_from, Square defense_king) const |
Additional Inherited Members | |
Protected Attributes inherited from osl::checkmate::FixedDepthSearcher | |
| NumEffectState * | state |
| int | count |
Definition at line 11 of file fixedDepthSolverExt.h.
| osl::checkmate::FixedDepthSolverExt::FixedDepthSolverExt | ( | ) |
Definition at line 37 of file fixedDepthSolverExt.cc.
|
explicit |
Definition at line 42 of file fixedDepthSolverExt.cc.
References hasEscapeByMove().
| const ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateMove | ( | int | depth, |
| Move & | best_move, | ||
| PieceStand & | proof_pieces | ||
| ) |
stateがPから詰む局面かを返す.
stateの手番はPと一致しているという前提
Referenced by osl::checkmate::Dfpn::attack(), hasCheckmateWithGuide(), and osl::checkmate::Dfpn::proofOracleAttack().
| const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateMove | ( | int | depth, |
| Move & | best_move, | ||
| PieceStand & | proof_pieces | ||
| ) |
Definition at line 113 of file fixedDepthSolverExt.cc.
References hasEscapeMove().
| const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateMoveOfTurn | ( | int | depth, |
| Move & | best_move, | ||
| PieceStand & | proof_pieces | ||
| ) |
Definition at line 63 of file fixedDepthSolverExt.cc.
References osl::BLACK, hasCheckmateWithGuideOfTurn(), osl::checkmate::FixedDepthSearcher::state, and osl::SimpleState::turn().
Referenced by hasEscapeByMove().
| const ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateWithGuide | ( | int | depth, |
| Move & | guide, | ||
| PieceStand & | proof_pieces | ||
| ) |
guide を最初に試す. guide.isNormal() である必要はあるが,その局面でvalid でなくても良い
Referenced by hasEscapeByMoveOfTurn().
| const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateWithGuide | ( | int | depth, |
| Move & | guide, | ||
| PieceStand & | proof_pieces | ||
| ) |
Definition at line 95 of file fixedDepthSolverExt.cc.
References osl::Move::from(), hasCheckmateMove(), osl::Move::isDrop(), osl::Move::isNormal(), osl::Piece::isPtype(), osl::KING, osl::Move::newCapture(), osl::SimpleState::pieceOnBoard(), osl::Move::ptype(), osl::checkmate::FixedDepthSearcher::state, and osl::Move::to().
| const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasCheckmateWithGuideOfTurn | ( | int | depth, |
| Move & | guide, | ||
| PieceStand & | proof_pieces | ||
| ) |
Definition at line 73 of file fixedDepthSolverExt.cc.
References osl::BLACK, hasEscapeByMoveOfTurn(), osl::checkmate::FixedDepthSearcher::state, and osl::SimpleState::turn().
Referenced by hasCheckmateMoveOfTurn().
| const ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeByMove | ( | Move | next_move, |
| int | depth, | ||
| Move & | check_move, | ||
| PieceStand & | proof_pieces | ||
| ) |
next_move を指して逃げられるかどうかを調べる
| check_move | 詰の場合の攻撃側の指手 |
| depth | next_move を指した後からカウント |
Referenced by osl::checkmate::Dfpn::defense(), FixedDepthSolverExt(), and osl::checkmate::Dfpn::proofOracleDefense().
| const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeByMove | ( | Move | next_move, |
| int | depth, | ||
| Move & | check_move, | ||
| PieceStand & | proof_pieces | ||
| ) |
Definition at line 49 of file fixedDepthSolverExt.cc.
References osl::alt(), hasCheckmateMoveOfTurn(), osl::NumEffectState::makeUnmakeMove(), and osl::checkmate::FixedDepthSearcher::state.
| const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeByMoveOfTurn | ( | Move | next_move, |
| int | depth, | ||
| Move & | check_move, | ||
| PieceStand & | proof_pieces | ||
| ) |
Definition at line 83 of file fixedDepthSolverExt.cc.
References osl::BLACK, hasCheckmateWithGuide(), osl::checkmate::FixedDepthSearcher::state, and osl::SimpleState::turn().
Referenced by hasCheckmateWithGuideOfTurn().
| const ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeMove | ( | Move | last_move, |
| int | depth, | ||
| PieceStand & | proof_pieces | ||
| ) |
stateがPによって詰んでいる局面かを返す.
王手がかかっていない時には呼ばない stateの手番はalt(P)と一致しているという前提 stateはPによって王手がかかっているという前提
| last_move | 打ち歩詰めの判定に必要 |
Referenced by hasCheckmateMove().
| const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSolverExt::hasEscapeMove | ( | Move | last_move, |
| int | depth, | ||
| PieceStand & | proof_pieces | ||
| ) |
Definition at line 120 of file fixedDepthSolverExt.cc.
1.8.13