#include <oracleDisprover.h>
Public 型 | |
typedef NumEffectState | state_t |
Public メソッド | |
OracleDisprover (Table &t) | |
template<Player Attacker> | |
bool | proofNoCheckmate (state_t &state, const HashKey &key, const PathEncoding &path, const DisproofOracleAttack< Attacker > &oracle) |
oracle ˴Ťƨ뤫ɤȽꤹ. | |
template<Player Attacker> | |
bool | proofEscape (state_t &state, const HashKey &key, const PathEncoding &path, const DisproofOracleDefense< Attacker > &oracle, Move &best_move, Move last_move=Move::INVALID()) |
oracle ˴ŤͤǤʤɤȽꤹ. | |
int | nodeCount () const |
template<Player P> | |
void | attack (CheckHashRecord *record, const DisproofOracleAttack< P > &oracle) |
template<Player P> | |
void | defense (CheckHashRecord *record, const DisproofOracleDefense< P > &oracle) |
bool | proofNoCheckmate (state_t &state, const PathEncoding &path, const CheckHashRecord *oracle, const PathEncoding &) |
bool | proofEscape (state_t &state, const PathEncoding &path, CheckHashRecord *oracle, const PathEncoding &, Move &, Move last_move=Move::INVALID()) |
Private メソッド | |
template<Player P> | |
void | confirmNoEscape (CheckHashRecord *record) |
Private 変数 | |
Table & | table |
state_t * | state |
HashKey | key |
PathEncoding | path |
Player | attacker |
int | node_count |
̤ԵͤȤʤΤߤ
oracleDisprover.h の 20 行で定義されています。
typedef NumEffectState osl::checkmate::OracleDisprover< Table >::state_t |
oracleDisprover.h の 23 行で定義されています。
osl::checkmate::OracleDisprover< Table >::OracleDisprover | ( | Table & | t | ) | [inline, explicit] |
oracleDisprover.h の 32 行で定義されています。
bool osl::checkmate::OracleDisprover< Table >::proofNoCheckmate | ( | state_t & | state, | |
const HashKey & | key, | |||
const PathEncoding & | path, | |||
const DisproofOracleAttack< P > & | oracle | |||
) | [inline] |
oracle ˴Ťƨ뤫ɤȽꤹ.
֤Ϲ
oracleDisprover.tcc の 73 行で定義されています。
参照先 osl::checkmate::CheckTableUtil::allocate(), check_assert, osl::checkmate::CheckHashRecord::distance, osl::checkmate::CheckHashRecord::findLoop(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::DisproofOracleAttack< Attacker >::isValid(), osl::checkmate::CheckHashRecord::isVisited, osl::checkmate::OracleDisprover< Table >::path, osl::checkmate::CheckHashRecord::proofDisproof(), osl::checkmate::CheckmateRecorder::setNextMove(), osl::checkmate::CheckmateRecorder::setState(), osl::checkmate::OracleDisprover< Table >::table, と osl::WHITE.
参照元 osl::checkmate::OracleDisprover< Table >::proofNoCheckmate().
bool osl::checkmate::OracleDisprover< Table >::proofEscape | ( | state_t & | state, | |
const HashKey & | key, | |||
const PathEncoding & | path, | |||
const DisproofOracleDefense< P > & | oracle, | |||
Move & | best_move, | |||
Move | last_move = Move::INVALID() | |||
) | [inline] |
oracle ˴ŤͤǤʤɤȽꤹ.
֤ϼ
bestMove | ԵͤξƨǾ | |
state | alt(Attacker) ФƲ꤬äƤ뤳 |
oracleDisprover.tcc の 111 行で定義されています。
参照先 osl::checkmate::CheckTableUtil::allocate(), osl::alt(), check_assert, osl::checkmate::CheckHashRecord::distance, osl::checkmate::CheckHashRecord::dump(), osl::checkmate::CheckMove::findLoop(), osl::checkmate::CheckHashRecord::findLoop(), osl::checkmate::CheckHashRecord::getBestMove(), osl::PathEncoding::getDepth(), osl::checkmate::DisproofOracleDefense< Attacker >::guide, osl::checkmate::CheckHashRecord::hasBestMove(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::ProofDisproof::isPawnDropFoul(), osl::Move::isValid(), osl::checkmate::DisproofOracleDefense< Attacker >::isValid(), osl::checkmate::CheckHashRecord::isVisited, osl::checkmate::CheckMoveCore::move, osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::OracleDisprover< Table >::path, osl::checkmate::DisproofOracleDefense< Attacker >::path, osl::Move::player(), osl::checkmate::CheckHashRecord::proofDisproof(), osl::checkmate::CheckmateRecorder::setNextMove(), osl::checkmate::CheckmateRecorder::setState(), osl::checkmate::OracleDisprover< Table >::table, osl::checkmate::CheckHashRecord::twins, と osl::WHITE.
参照元 osl::checkmate::OracleDisprover< Table >::proofEscape().
int osl::checkmate::OracleDisprover< Table >::nodeCount | ( | ) | const [inline] |
void osl::checkmate::OracleDisprover< Table >::attack | ( | CheckHashRecord * | record, | |
const DisproofOracleAttack< P > & | oracle | |||
) | [inline] |
oracleDisprover.tcc の 172 行で定義されています。
参照先 osl::checkmate::MoveFilter::addTarget(), osl::checkmate::CheckHashRecord::addToSolvedInAttack(), osl::checkmate::CheckTableUtil::allocate(), osl::alt(), osl::checkmate::DisproofPieces::attack(), osl::checkmate::CheckMoveListBase::begin(), osl::checkmate::CheckHashRecord::bestMove, osl::checkmate::CheckHashRecord::bestResultInSolved, osl::checkmate::ProofDisproof::betterForAttack(), check_assert, osl::checkmate::TwinList::clear(), osl::checkmate::CheckHashRecord::disproof(), osl::checkmate::ProofDisproof::disproof(), osl::checkmate::ProofDisproof::DISPROOF_LIMIT, osl::checkmate::CheckMoveListBase::empty(), osl::checkmate::CheckMoveListBase::end(), osl::checkmate::DisproofOracleAttack< Attacker >::expandOracle(), osl::checkmate::CheckHashRecord::filter, osl::checkmate::CheckHashRecord::findLoop(), osl::checkmate::DisproofOracleAttack< Attacker >::guide, osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::CheckHashRecord::isConsistent(), osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::ProofDisproof::isLoopDetection(), osl::checkmate::ProofDisproof::isPawnDropFoul(), osl::checkmate::MoveFilter::isTarget(), osl::checkmate::DisproofOracleDefense< Attacker >::isValid(), osl::checkmate::DisproofOracleAttack< Attacker >::isValid(), osl::checkmate::CheckHashRecord::isVisited, osl::checkmate::OracleDisprover< Table >::key, osl::checkmate::DisproofPieces::leaf(), osl::checkmate::ProofDisproof::LoopDetection(), osl::eval::max(), osl::eval::min(), osl::checkmate::CheckHashRecord::moves, osl::checkmate::CheckHashRecord::needMoveGeneration(), osl::checkmate::ProofDisproof::NoCheckmate(), osl::checkmate::OracleDisprover< Table >::node_count, osl::checkmate::MoveFlags::NoPromote, osl::checkmate::OracleDisprover< Table >::path, osl::checkmate::ProofDisproof::PawnCheckmate(), osl::checkmate::CheckHashRecord::proof(), osl::checkmate::ProofDisproof::proof(), osl::checkmate::ProofDisproof::PROOF_LIMIT, osl::checkmate::CheckHashRecord::proofDisproof(), osl::checkmate::CheckHashRecord::propagateCheckmate(), osl::checkmate::CheckHashRecord::propagateNoCheckmate(), osl::checkmate::MoveFlags::SacrificeAttack, osl::checkmate::CheckHashRecord::sameBoards, osl::checkmate::CheckHashRecord::setDisproofPieces(), osl::checkmate::CheckmateRecorder::setLeaveReason(), osl::checkmate::CheckHashRecord::setLoopDetection(), osl::checkmate::CheckHashRecord::setLoopDetectionInAttack(), osl::checkmate::CheckmateRecorder::setNextMove(), osl::checkmate::CheckHashRecord::setProofDisproof(), osl::checkmate::CheckHashRecord::setProofPiecesAttack(), osl::checkmate::CheckMoveListBase::size(), osl::checkmate::CheckHashRecord::stand(), osl::checkmate::OracleDisprover< Table >::state, osl::checkmate::CheckmateRecorder::DepthTracer::stream(), osl::checkmate::OracleDisprover< Table >::table, osl::checkmate::CheckHashRecord::twins, osl::checkmate::MoveFlags::Upward, と osl::checkmate::CheckHashRecord::useMaxInsteadOfSum.
void osl::checkmate::OracleDisprover< Table >::defense | ( | CheckHashRecord * | record, | |
const DisproofOracleDefense< P > & | oracle | |||
) | [inline] |
oracleDisprover.tcc の 440 行で定義されています。
参照先 osl::checkmate::CheckTableUtil::allocate(), osl::alt(), osl::checkmate::CheckMoveListBase::begin(), osl::checkmate::DisproofOracleDefense< Attacker >::best_move, osl::checkmate::CheckHashRecord::bestMove, check_assert, osl::checkmate::TwinList::clear(), osl::checkmate::CheckHashRecord::disproof(), osl::checkmate::ProofDisproof::disproof(), osl::checkmate::ProofDisproof::DISPROOF_LIMIT, osl::checkmate::CheckHashRecord::dump(), osl::checkmate::CheckMoveListBase::empty(), osl::checkmate::CheckMoveListBase::end(), osl::checkmate::DisproofOracleDefense< Attacker >::expandOracle(), osl::checkmate::CheckMove::findLoop(), osl::checkmate::CheckHashRecord::findLoop(), osl::checkmate::CheckHashRecord::getBestMove(), osl::checkmate::DisproofOracleDefense< Attacker >::guide, osl::checkmate::CheckHashRecord::hasBestMove(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::CheckHashRecord::isConsistent(), osl::checkmate::ProofDisproof::isFinal(), osl::Move::isInvalid(), osl::checkmate::ProofDisproof::isLoopDetection(), osl::Move::isPass(), osl::Position::isPieceStand(), osl::checkmate::DisproofOracleAttack< Attacker >::isValid(), osl::checkmate::DisproofOracleDefense< Attacker >::isValid(), osl::checkmate::CheckHashRecord::isVisited, osl::checkmate::OracleDisprover< Table >::key, osl::KING, osl::checkmate::ProofPieces::leaf(), osl::eval::max(), osl::checkmate::CheckMoveCore::move, osl::checkmate::CheckHashRecord::moves, osl::checkmate::DisproofOracleDefense< Attacker >::next_guide, osl::checkmate::OracleDisprover< Table >::node_count, osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::DisproofOracleDefense< Attacker >::path, osl::checkmate::OracleDisprover< Table >::path, osl::checkmate::CheckHashRecord::proof(), osl::checkmate::ProofDisproof::proof(), osl::checkmate::ProofDisproof::PROOF_LIMIT, osl::checkmate::CheckHashRecord::proofDisproof(), osl::checkmate::CheckHashRecord::propagateCheckmate(), osl::checkmate::CheckHashRecord::propagateNoCheckmate(), osl::checkmate::CheckMoveCore::record, osl::checkmate::CheckHashRecord::sameBoards, osl::checkmate::CheckHashRecord::setDisproofPiecesDefense(), osl::checkmate::CheckmateRecorder::setLeaveReason(), osl::checkmate::CheckHashRecord::setLoopDetection(), osl::checkmate::CheckHashRecord::setLoopDetectionTryMerge(), osl::checkmate::CheckmateRecorder::setNextMove(), osl::checkmate::CheckHashRecord::setProofDisproof(), osl::checkmate::CheckHashRecord::setProofPieces(), osl::checkmate::CheckMoveListBase::size(), osl::checkmate::MoveFlags::Solved, osl::checkmate::CheckHashRecord::stand(), osl::checkmate::OracleDisprover< Table >::state, osl::checkmate::CheckmateRecorder::DepthTracer::stream(), osl::checkmate::OracleDisprover< Table >::table, と osl::checkmate::CheckHashRecord::twins.
bool osl::checkmate::OracleDisprover< Table >::proofNoCheckmate | ( | state_t & | state, | |
const PathEncoding & | path, | |||
const CheckHashRecord * | oracle, | |||
const PathEncoding & | opath | |||
) | [inline] |
bool osl::checkmate::OracleDisprover< Table >::proofEscape | ( | state_t & | state, | |
const PathEncoding & | path, | |||
CheckHashRecord * | oracle, | |||
const PathEncoding & | opath, | |||
Move & | best_move, | |||
Move | last_move = Move::INVALID() | |||
) | [inline] |
void osl::checkmate::OracleDisprover< Table >::confirmNoEscape | ( | CheckHashRecord * | record | ) | [inline, private] |
oracleDisprover.tcc の 422 行で定義されています。
参照先 check_assert, osl::checkmate::CheckMoveListBase::empty(), osl::checkmate::CheckHashRecord::isConsistent(), osl::checkmate::ProofPieces::leaf(), osl::checkmate::CheckHashRecord::moves, osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::CheckHashRecord::propagateCheckmate(), osl::checkmate::CheckHashRecord::setProofPieces(), osl::checkmate::CheckHashRecord::stand(), osl::checkmate::OracleDisprover< Table >::state, と osl::checkmate::OracleDisprover< Table >::table.
Table& osl::checkmate::OracleDisprover< Table >::table [private] |
oracleDisprover.h の 25 行で定義されています。
参照元 osl::checkmate::OracleDisprover< Table >::attack(), osl::checkmate::OracleDisprover< Table >::confirmNoEscape(), osl::checkmate::OracleDisprover< Table >::defense(), osl::checkmate::OracleDisprover< Table >::proofEscape(), と osl::checkmate::OracleDisprover< Table >::proofNoCheckmate().
state_t* osl::checkmate::OracleDisprover< Table >::state [private] |
HashKey osl::checkmate::OracleDisprover< Table >::key [private] |
PathEncoding osl::checkmate::OracleDisprover< Table >::path [private] |
Player osl::checkmate::OracleDisprover< Table >::attacker [private] |
oracleDisprover.h の 29 行で定義されています。
int osl::checkmate::OracleDisprover< Table >::node_count [private] |