#include <oracleProver.h>
Public 型 | |
typedef NumEffectState | state_t |
Public メソッド | |
OracleProver (Table &t) | |
template<Player Attacker> | |
bool | proofWin (state_t &state, const HashKey &key, const PathEncoding &path, ProofOracleAttack< Attacker > oracle, Move &best_move) |
oracle ˴Ťͤ뤫ɤȽꤹ | |
template<Player Attacker> | |
bool | proofLose (state_t &state, const HashKey &key, const PathEncoding &path, ProofOracleDefense< Attacker > oracle, Move last_move=Move::INVALID()) |
oracle ˴ŤͤǤ뤫ɤȽꤹ | |
int | nodeCount () const |
template<Player P> | |
void | attack (CheckHashRecord *record, ProofOracleAttack< P > oracle) |
template<Player P> | |
void | defense (CheckHashRecord *record, ProofOracleDefense< P > oracle) |
template<Player P> | |
void | testFixedDepthAttack (CheckHashRecord *record, Move) |
template<Player P> | |
void | testFixedDepthDefense (CheckHashRecord *record, CheckMove &) |
bool | proofWin (state_t &state, const PathEncoding &path, const CheckHashRecord *oracle, Move &best_move) |
bool | proofLose (state_t &state, const PathEncoding &path, const CheckHashRecord *oracle, Move last_move=Move::INVALID()) |
Private 変数 | |
Table & | table |
state_t * | state |
HashKey | key |
PathEncoding | path |
Player | attacker |
FixedDepthSearcher | fixed_searcher |
int | node_count |
¦̤ǵͤΤߤ
oracleProver.h の 21 行で定義されています。
typedef NumEffectState osl::checkmate::OracleProver< Table >::state_t |
oracleProver.h の 24 行で定義されています。
osl::checkmate::OracleProver< Table >::OracleProver | ( | Table & | t | ) | [inline, explicit] |
oracleProver.h の 34 行で定義されています。
bool osl::checkmate::OracleProver< Table >::proofWin | ( | state_t & | state, | |
const HashKey & | key, | |||
const PathEncoding & | path, | |||
ProofOracleAttack< P > | oracle, | |||
Move & | best_move | |||
) | [inline] |
oracle ˴Ťͤ뤫ɤȽꤹ
best_move | ͤ˵ͤޤǾ |
oracleProver.tcc の 72 行で定義されています。
参照先 osl::checkmate::CheckTableUtil::allocate(), check_assert, osl::checkmate::CheckHashRecord::distance, osl::checkmate::CheckHashRecord::findLoop(), osl::checkmate::OracleProver< Table >::fixed_searcher, osl::checkmate::CheckHashRecord::getBestMove(), osl::checkmate::CheckHashRecord::hasBestMove(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::ProofOracleAttack< Attacker >::isValid(), osl::checkmate::CheckHashRecord::isVisited, osl::checkmate::CheckMoveCore::move, osl::checkmate::OracleProver< Table >::path, osl::checkmate::CheckHashRecord::proofDisproof(), osl::checkmate::CheckmateRecorder::setNextMove(), osl::checkmate::CheckmateRecorder::setState(), osl::checkmate::FixedDepthSearcher::setState(), osl::checkmate::OracleProver< Table >::table, と osl::WHITE.
bool osl::checkmate::OracleProver< Table >::proofLose | ( | state_t & | state, | |
const HashKey & | key, | |||
const PathEncoding & | path, | |||
ProofOracleDefense< P > | oracle, | |||
Move | last_move = Move::INVALID() | |||
) | [inline] |
oracle ˴ŤͤǤ뤫ɤȽꤹ
state | alt(Attacker) ФƲ꤬äƤ뤳 |
oracleProver.tcc の 115 行で定義されています。
参照先 osl::checkmate::CheckTableUtil::allocate(), osl::alt(), check_assert, osl::checkmate::CheckHashRecord::distance, osl::checkmate::CheckHashRecord::findLoop(), osl::checkmate::OracleProver< Table >::fixed_searcher, osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::ProofDisproof::isPawnDropFoul(), osl::checkmate::ProofOracleDefense< Attacker >::isValid(), osl::checkmate::CheckHashRecord::isVisited, osl::checkmate::OracleProver< Table >::path, osl::checkmate::CheckHashRecord::proofDisproof(), osl::checkmate::CheckmateRecorder::setNextMove(), osl::checkmate::CheckmateRecorder::setState(), osl::checkmate::FixedDepthSearcher::setState(), osl::checkmate::OracleProver< Table >::table, と osl::WHITE.
int osl::checkmate::OracleProver< Table >::nodeCount | ( | ) | const [inline] |
void osl::checkmate::OracleProver< Table >::attack | ( | CheckHashRecord * | record, | |
ProofOracleAttack< P > | oracle | |||
) | [inline] |
oracleProver.tcc の 215 行で定義されています。
参照先 osl::PieceStand::add(), osl::checkmate::CheckTableUtil::allocate(), osl::alt(), osl::checkmate::OracleAdjust::attack(), osl::checkmate::CheckMoveListBase::begin(), osl::checkmate::CheckHashRecord::bestMove, check_assert, osl::checkmate::ProofDisproof::Checkmate(), osl::checkmate::CheckHashRecord::disproof(), osl::checkmate::ProofDisproof::disproof(), osl::checkmate::ProofDisproof::DISPROOF_LIMIT, osl::checkmate::CheckMoveListBase::empty(), osl::checkmate::CheckMoveListBase::end(), osl::checkmate::ProofOracleAttack< Attacker >::expandOracle(), osl::checkmate::CheckMove::findLoop(), osl::checkmate::CheckHashRecord::findLoop(), osl::checkmate::CheckMove::flags, osl::checkmate::CheckHashRecord::getBestMove(), osl::checkmate::ProofOracleAttack< Attacker >::guide, osl::checkmate::CheckHashRecord::hasBestMove(), osl::checkmate::CheckHashRecord::hasProofPieces(), osl::checkmate::MoveFlags::ImmediateCheckmate, osl::Move::INVALID(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::CheckHashRecord::isConsistent(), osl::Move::isDrop(), osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::ProofDisproof::isPawnDropFoul(), osl::checkmate::MoveFlags::isSet(), osl::checkmate::ProofOracleDefense< Attacker >::isValid(), osl::checkmate::ProofOracleAttack< Attacker >::isValid(), osl::checkmate::CheckHashRecord::isVisited, osl::checkmate::OracleProver< Table >::key, osl::checkmate::DisproofPieces::leaf(), osl::eval::max(), osl::checkmate::CheckMoveCore::move, osl::checkmate::CheckHashRecord::moves, osl::checkmate::CheckHashRecord::needMoveGeneration(), osl::checkmate::ProofDisproof::NoCheckmate(), osl::checkmate::OracleProver< Table >::node_count, osl::checkmate::ProofOracleAttack< Attacker >::oracle(), osl::checkmate::OracleProver< Table >::path, osl::Move::player(), 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::Move::ptype(), osl::checkmate::CheckMoveCore::record, osl::checkmate::MoveFlags::set(), osl::checkmate::CheckHashRecord::setDisproofPieces(), osl::checkmate::CheckmateRecorder::setNextMove(), osl::checkmate::CheckMoveListBase::setOne(), osl::checkmate::CheckHashRecord::setProofDisproof(), osl::checkmate::CheckHashRecord::setProofPieces(), osl::checkmate::CheckHashRecord::setProofPiecesAttack(), osl::checkmate::CheckMoveListBase::size(), osl::checkmate::MoveFlags::Solved, osl::checkmate::CheckHashRecord::stand(), osl::checkmate::OracleProver< Table >::state, と osl::checkmate::OracleProver< Table >::table.
参照元 osl::checkmate::OracleProver< Table >::testFixedDepthAttack().
void osl::checkmate::OracleProver< Table >::defense | ( | CheckHashRecord * | record, | |
ProofOracleDefense< P > | oracle | |||
) | [inline] |
oracleProver.tcc の 374 行で定義されています。
参照先 osl::checkmate::MoveFilter::addTarget(), osl::checkmate::CheckHashRecord::addToSolvedInDefense(), osl::checkmate::CheckTableUtil::allocate(), osl::alt(), osl::checkmate::CheckMoveListBase::begin(), osl::checkmate::CheckHashRecord::bestMove, osl::checkmate::CheckHashRecord::bestResultInSolved, osl::checkmate::MoveFlags::BlockingBySacrifice, check_assert, osl::checkmate::ProofPieces::defense(), osl::checkmate::CheckHashRecord::disproof(), osl::checkmate::ProofDisproof::disproof(), osl::checkmate::ProofDisproof::DISPROOF_LIMIT, osl::checkmate::CheckMoveListBase::empty(), osl::checkmate::CheckMoveListBase::end(), osl::checkmate::ProofOracleDefense< Attacker >::expandOracle(), osl::checkmate::CheckHashRecord::filter, osl::checkmate::CheckHashRecord::findLoop(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::CheckHashRecord::isConsistent(), osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::ProofDisproof::isLoopDetection(), osl::Position::isPieceStand(), osl::checkmate::MoveFilter::isTarget(), osl::checkmate::ProofOracleAttack< Attacker >::isValid(), osl::checkmate::ProofOracleDefense< Attacker >::isValid(), osl::checkmate::CheckHashRecord::isVisited, osl::checkmate::OracleProver< Table >::key, osl::checkmate::ProofPieces::leaf(), osl::eval::max(), osl::eval::min(), osl::checkmate::CheckHashRecord::moves, osl::checkmate::CheckHashRecord::needMoveGeneration(), osl::checkmate::OracleProver< Table >::node_count, osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::OracleProver< 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::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::CheckHashRecord::stand(), osl::checkmate::OracleProver< Table >::state, osl::checkmate::OracleProver< Table >::table, osl::checkmate::MoveFlags::Upward, と osl::checkmate::CheckHashRecord::useMaxInsteadOfSum.
void osl::checkmate::OracleProver< Table >::testFixedDepthAttack | ( | CheckHashRecord * | record, | |
Move | guide | |||
) | [inline] |
oracleProver.tcc の 152 行で定義されています。
参照先 osl::checkmate::OracleProver< Table >::attack(), osl::checkmate::CheckMoveListBase::begin(), osl::checkmate::CheckHashRecord::bestMove, osl::checkmate::ProofDisproof::Checkmate(), osl::checkmate::CheckHashRecord::disproof(), osl::checkmate::ProofDisproof::disproof(), osl::checkmate::CheckMoveList::find(), osl::checkmate::OracleProver< Table >::fixed_searcher, osl::checkmate::CheckMove::flags, osl::checkmate::FixedDepthSearcher::hasCheckmateMove(), osl::checkmate::FixedDepthSearcher::hasCheckmateWithGuide(), osl::checkmate::MoveFlags::ImmediateCheckmate, osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::Move::isNormal(), osl::checkmate::ProofDisproof::isUnknown(), osl::eval::max(), osl::checkmate::CheckHashRecord::moves, osl::checkmate::CheckHashRecord::proof(), osl::checkmate::ProofDisproof::proof(), osl::checkmate::CheckHashRecord::propagateCheckmate(), osl::checkmate::MoveFlags::set(), osl::checkmate::CheckMoveListBase::setOne(), osl::checkmate::CheckHashRecord::setProofDisproof(), osl::checkmate::CheckHashRecord::setProofPieces(), と osl::checkmate::OracleProver< Table >::table.
void osl::checkmate::OracleProver< Table >::testFixedDepthDefense | ( | CheckHashRecord * | record, | |
CheckMove & | next_move | |||
) | [inline] |
oracleProver.tcc の 188 行で定義されています。
参照先 osl::checkmate::CheckHashRecord::disproof(), osl::checkmate::ProofDisproof::disproof(), osl::checkmate::OracleProver< Table >::fixed_searcher, osl::checkmate::FixedDepthSearcher::hasEscapeByMove(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::ProofDisproof::isUnknown(), osl::checkmate::OracleProver< Table >::key, osl::eval::max(), osl::checkmate::CheckMoveCore::move, osl::checkmate::OracleProver< Table >::path, osl::checkmate::CheckHashRecord::proof(), osl::checkmate::ProofDisproof::proof(), osl::checkmate::CheckHashRecord::setProofDisproof(), と osl::checkmate::OracleProver< Table >::table.
bool osl::checkmate::OracleProver< Table >::proofWin | ( | state_t & | state, | |
const PathEncoding & | path, | |||
const CheckHashRecord * | oracle, | |||
Move & | best_move | |||
) | [inline] |
bool osl::checkmate::OracleProver< Table >::proofLose | ( | state_t & | state, | |
const PathEncoding & | path, | |||
const CheckHashRecord * | oracle, | |||
Move | last_move = Move::INVALID() | |||
) | [inline] |
Table& osl::checkmate::OracleProver< Table >::table [private] |
oracleProver.h の 26 行で定義されています。
参照元 osl::checkmate::OracleProver< Table >::attack(), osl::checkmate::OracleProver< Table >::defense(), osl::checkmate::OracleProver< Table >::proofLose(), osl::checkmate::OracleProver< Table >::proofWin(), osl::checkmate::OracleProver< Table >::testFixedDepthAttack(), と osl::checkmate::OracleProver< Table >::testFixedDepthDefense().
state_t* osl::checkmate::OracleProver< Table >::state [private] |
HashKey osl::checkmate::OracleProver< Table >::key [private] |
oracleProver.h の 28 行で定義されています。
参照元 osl::checkmate::OracleProver< Table >::attack(), osl::checkmate::OracleProver< Table >::defense(), osl::checkmate::OracleProver< Table >::proofLose(), osl::checkmate::OracleProver< Table >::proofWin(), と osl::checkmate::OracleProver< Table >::testFixedDepthDefense().
PathEncoding osl::checkmate::OracleProver< Table >::path [private] |
oracleProver.h の 29 行で定義されています。
参照元 osl::checkmate::OracleProver< Table >::attack(), osl::checkmate::OracleProver< Table >::defense(), osl::checkmate::OracleProver< Table >::proofLose(), osl::checkmate::OracleProver< Table >::proofWin(), と osl::checkmate::OracleProver< Table >::testFixedDepthDefense().
Player osl::checkmate::OracleProver< Table >::attacker [private] |
oracleProver.h の 30 行で定義されています。
FixedDepthSearcher osl::checkmate::OracleProver< Table >::fixed_searcher [private] |
int osl::checkmate::OracleProver< Table >::node_count [private] |