深さ固定で,その深さまで depth first searchで読む詰将棋. [詳細]
#include <fixedDepthSearcher.h>
Public メソッド | |
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 |
無駄合をなるべく生成しない,合駒生成 | |
template<Player Defense> | |
int | blockEstimation (Square attack_from, Square defense_king) const |
Protected 変数 | |
NumEffectState * | state |
int | count |
Private メソッド | |
void | addCount () |
template<Player P, class SetPieces > | |
const ProofDisproof | defenseEstimation (Move last_move, PieceStand &proof_pieces, Piece attacker_piece, Square target_position) const |
move を作らずに ProofDisproof の予測を計算する |
深さ固定で,その深さまで depth first searchで読む詰将棋.
深さ0で詰み状態かどうか(攻め手の手番の場合),王手をかける手がないかを判定可能 深さ1で通常の一手詰みを判定(攻め手の手番の場合) 使うのは深さ3位まで? NumEffectState専用
fixedDepthSearcher.h の 40 行で定義されています。
osl::checkmate::FixedDepthSearcher::FixedDepthSearcher | ( | ) | [inline] |
fixedDepthSearcher.h の 46 行で定義されています。
osl::checkmate::FixedDepthSearcher::FixedDepthSearcher | ( | NumEffectState & | s | ) | [inline, explicit] |
fixedDepthSearcher.h の 49 行で定義されています。
void osl::checkmate::FixedDepthSearcher::addCount | ( | ) | [inline, private] |
const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSearcher::attack | ( | int | depth, | |
Move & | best_move, | |||
PieceStand & | proof_pieces | |||
) |
fixedDepthSearcher.tcc の 77 行で定義されています。
参照先 addCount(), osl::alt(), osl::checkmate::ProofDisproof::Checkmate(), osl::checkmate::ProofDisproof::disproof(), osl::Move::from(), osl::NumEffectState::hasEffectAt(), osl::NumEffectState::Iking8Info(), osl::NumEffectState::inCheck(), osl::NumEffectState::isAlmostValidMove(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::NumEffectState::makeUnmakeMove(), osl::eval::min(), osl::checkmate::ProofDisproof::NoCheckmate(), osl::checkmate::ProofDisproof::PAWN_CHECK_MATE_PROOF, osl::checkmate::ProofDisproof::PawnCheckmate(), osl::checkmate::ProofDisproof::proof(), osl::Move::ptype(), state, osl::Move::to(), と osl::SimpleState::turn().
参照元 osl::checkmate::FixedDefenseHelper< P, SetPieces, MayUnsafe >::operator()().
const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSearcher::attackMayUnsafe | ( | int | depth, | |
Move & | best_move, | |||
PieceStand & | proof_pieces | |||
) |
int osl::checkmate::FixedDepthSearcher::blockEstimation | ( | Square | attack_from, | |
Square | defense_king | |||
) | const [inline] |
fixedDepthSearcher.tcc の 235 行で定義されています。
const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSearcher::defense | ( | Move | last_move, | |
int | depth, | |||
PieceStand & | proof_pieces | |||
) |
直前の攻め方の手が自殺手
fixedDepthSearcher.tcc の 244 行で定義されています。
参照先 addCount(), osl::alt(), osl::FixedCapacityVector< T, Capacity >::empty(), osl::GOLD, osl::NumEffectState::hasEffectAt(), osl::SimpleState::hasPieceOnStand(), osl::NumEffectState::inUnblockableCheck(), osl::Move::isDrop(), osl::Piece::isEmpty(), osl::Square::isOnBoard(), osl::Move::isValid(), osl::NumEffectState::makeUnmakeMove(), osl::checkmate::ProofDisproof::NoCheckmate(), osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::ProofDisproof::PawnCheckmate(), osl::Move::ptype(), osl::FixedCapacityVector< T, Capacity >::push_back(), osl::SILVER, osl::FixedCapacityVector< T, Capacity >::size(), osl::Piece::square(), stand(), state, osl::SimpleState::turn(), と osl::unpromote().
参照元 osl::checkmate::FixedAttackHelper< P, SetPieces >::operator()().
const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSearcher::defenseEstimation | ( | Move | last_move, | |
PieceStand & | proof_pieces, | |||
Piece | attacker_piece, | |||
Square | target_position | |||
) | const [inline, private] |
move を作らずに ProofDisproof の予測を計算する
fixedDepthSearcher.tcc の 161 行で定義されています。
参照先 osl::alt(), count, osl::NumEffectState::countEffect(), osl::PtypeTable::getEffect(), osl::EffectContent::hasUnblockableEffect(), osl::NumEffectState::Iking8Info(), osl::Move::isDrop(), osl::Piece::isEmpty(), osl::Square::isNeighboring8(), osl::Move::isValid(), osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::ProofDisproof::PawnCheckmate(), osl::Move::ptype(), osl::Ptype_Table, osl::Piece::ptypeO(), osl::Piece::square(), stand(), state, と osl::SimpleState::turn().
void osl::checkmate::FixedDepthSearcher::generateBlockingWhenLiberty0 | ( | Piece | defense_king, | |
Square | attack_from, | |||
CheckMoveVector & | moves | |||
) | const |
無駄合をなるべく生成しない,合駒生成
fixedDepthSearcher.tcc の 200 行で定義されています。
参照先 osl::NumEffectState::hasEffectAt(), osl::NumEffectState::hasMultipleEffectAt(), osl::SimpleState::kingPiece(), osl::FixedCapacityVector< T, Capacity >::push_back(), osl::Piece::square(), と state.
int osl::checkmate::FixedDepthSearcher::getCount | ( | ) | const [inline] |
fixedDepthSearcher.h の 63 行で定義されています。
参照先 count.
const ProofDisproof osl::checkmate::FixedDepthSearcher::hasCheckmateMove | ( | int | depth, | |
Move & | best_move | |||
) | [inline] |
fixedDepthSearcher.h の 90 行で定義されています。
const ProofDisproof osl::checkmate::FixedDepthSearcher::hasCheckmateMove | ( | int | depth | ) | [inline] |
fixedDepthSearcher.h の 96 行で定義されています。
const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSearcher::hasCheckmateMoveOfTurn | ( | int | depth, | |
Move & | best_move | |||
) |
const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSearcher::hasEscapeByMove | ( | Move | next_move, | |
int | depth | |||
) |
fixedDepthSearcher.tcc の 399 行で定義されています。
参照先 osl::alt(), osl::NumEffectState::makeUnmakeMove(), と state.
const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSearcher::hasEscapeByMoveOfTurn | ( | Move | next_move, | |
int | depth | |||
) |
fixedDepthSearcher.cc の 30 行で定義されています。
参照先 state, と osl::SimpleState::turn().
const ProofDisproof osl::checkmate::FixedDepthSearcher::hasEscapeMove | ( | Move | last_move, | |
int | depth | |||
) | [inline] |
fixedDepthSearcher.h の 103 行で定義されています。
const osl::checkmate::ProofDisproof osl::checkmate::FixedDepthSearcher::hasEscapeMoveOfTurn | ( | Move | last_move, | |
int | depth | |||
) |
fixedDepthSearcher.cc の 20 行で定義されています。
参照先 state, と osl::SimpleState::turn().
void osl::checkmate::FixedDepthSearcher::setState | ( | NumEffectState & | s | ) | [inline] |
fixedDepthSearcher.h の 53 行で定義されています。
参照先 state.
const PieceStand osl::checkmate::FixedDepthSearcher::stand | ( | Player | P | ) | const [inline] |
int osl::checkmate::FixedDepthSearcher::count [protected] |
fixedDepthSearcher.h の 44 行で定義されています。
参照元 addCount(), defenseEstimation(), と getCount().
NumEffectState* osl::checkmate::FixedDepthSearcher::state [protected] |
fixedDepthSearcher.h の 43 行で定義されています。
参照元 attack(), attackMayUnsafe(), defense(), defenseEstimation(), generateBlockingWhenLiberty0(), osl::checkmate::FixedDepthSolverExt::hasCheckmateMoveOfTurn(), hasCheckmateMoveOfTurn(), osl::checkmate::FixedDepthSolverExt::hasCheckmateWithGuide(), osl::checkmate::FixedDepthSolverExt::hasCheckmateWithGuideOfTurn(), osl::checkmate::FixedDepthSolverExt::hasEscapeByMove(), hasEscapeByMove(), osl::checkmate::FixedDepthSolverExt::hasEscapeByMoveOfTurn(), hasEscapeByMoveOfTurn(), hasEscapeMoveOfTurn(), setState(), と stand().