証明数(proof number)と反証数(disproof number). [詳細]
#include <proofDisproof.h>
Public 型 | |
enum | { PROOF_SHIFT = 32, DISPROOF_MASK = 0xffffffffu, PROOF_MAX = (0xffffffffu / 16), DISPROOF_MAX = (0xffffffffu / 16), NO_ESCAPE_DISPROOF = (DISPROOF_MAX - 1), CHECK_MATE_DISPROOF = (DISPROOF_MAX - 2), NO_CHECK_MATE_PROOF = (PROOF_MAX - 1), PAWN_CHECK_MATE_PROOF = (PROOF_MAX - 2), LOOP_DETECTION_PROOF = (PROOF_MAX - 3), ATTACK_BACK_PROOF = (PROOF_MAX - 4) } |
enum | { DISPROOF_LIMIT = (DISPROOF_MAX - 3), PROOF_LIMIT = (PROOF_MAX - 5) } |
Public メソッド | |
ProofDisproof () | |
ProofDisproof (unsigned int proof, unsigned int disproof) | |
unsigned int | proof () const |
unsigned int | disproof () const |
bool | isCheckmateSuccess () const |
bool | isCheckmateFail () const |
bool | isFinal () const |
bool | isUnknown () const |
bool | isPawnDropFoul (Move move) const |
打歩詰めなら真 | |
bool | isLoopDetection () const |
unsigned long long | ulonglongValue () const |
bool | isBetterForAttack (const ProofDisproof &r) const |
this が r より攻方に都合が良い時に真 | |
bool | isBetterForDefense (const ProofDisproof &r) const |
this が r より受方に都合が良い時に真 | |
const ProofDisproof & | betterForAttack (const ProofDisproof &r) const |
攻方に都合が良い方を返す | |
const ProofDisproof & | betterForDefense (const ProofDisproof &r) const |
受方に都合が良い方を返す | |
Static Public メソッド | |
static const ProofDisproof | makeDirect (unsigned long long value) |
static const ProofDisproof | NoEscape () |
static const ProofDisproof | Checkmate () |
static const ProofDisproof | NoCheckmate () |
static const ProofDisproof | PawnCheckmate () |
static const ProofDisproof | LoopDetection () |
static const ProofDisproof | AttackBack () |
static const ProofDisproof | Unknown () |
static const ProofDisproof | Bottom () |
攻方にも受方にも不都合な仮想的な数 | |
Static Public 変数 | |
static const unsigned int | BigProofNumber = PROOF_MAX |
Private メソッド | |
ProofDisproof (unsigned long long value) | |
range check をしない private バージョン | |
Static Private メソッド | |
static void | testConsistency () |
static unsigned long long | compose (unsigned long long proof, unsigned long long disproof) |
static const ProofDisproof | make (unsigned int proof, unsigned int disproof) |
Private 変数 | |
unsigned long long | pdp |
証明数(proof number)と反証数(disproof number).
詰み局面と確定した時は proofNumber=0 不詰み局面と確定した時は disproofNumber=0
proofDisproof.h の 16 行で定義されています。
anonymous enum |
proofDisproof.h の 20 行で定義されています。
anonymous enum |
proofDisproof.h の 37 行で定義されています。
osl::checkmate::ProofDisproof::ProofDisproof | ( | unsigned long long | value | ) | [inline, private] |
range check をしない private バージョン
proofDisproof.h の 50 行で定義されています。
osl::checkmate::ProofDisproof::ProofDisproof | ( | ) | [inline] |
proofDisproof.h の 59 行で定義されています。
参照元 AttackBack(), Checkmate(), LoopDetection(), make(), makeDirect(), NoCheckmate(), NoEscape(), PawnCheckmate(), と Unknown().
osl::checkmate::ProofDisproof::ProofDisproof | ( | unsigned int | proof, | |
unsigned int | disproof | |||
) | [inline] |
proofDisproof.h の 62 行で定義されています。
参照先 DISPROOF_LIMIT, DISPROOF_MAX, PROOF_LIMIT, と PROOF_MAX.
static const ProofDisproof osl::checkmate::ProofDisproof::AttackBack | ( | ) | [inline, static] |
proofDisproof.h の 79 行で定義されています。
参照先 ATTACK_BACK_PROOF, と ProofDisproof().
const ProofDisproof& osl::checkmate::ProofDisproof::betterForAttack | ( | const ProofDisproof & | r | ) | const [inline] |
const ProofDisproof& osl::checkmate::ProofDisproof::betterForDefense | ( | const ProofDisproof & | r | ) | const [inline] |
static const ProofDisproof osl::checkmate::ProofDisproof::Bottom | ( | ) | [inline, static] |
static const ProofDisproof osl::checkmate::ProofDisproof::Checkmate | ( | ) | [inline, static] |
static unsigned long long osl::checkmate::ProofDisproof::compose | ( | unsigned long long | proof, | |
unsigned long long | disproof | |||
) | [inline, static, private] |
unsigned int osl::checkmate::ProofDisproof::disproof | ( | ) | const [inline] |
bool osl::checkmate::ProofDisproof::isBetterForAttack | ( | const ProofDisproof & | r | ) | const [inline] |
this が r より攻方に都合が良い時に真
proofDisproof.h の 106 行で定義されています。
参照先 disproof(), と proof().
参照元 betterForAttack().
bool osl::checkmate::ProofDisproof::isBetterForDefense | ( | const ProofDisproof & | r | ) | const [inline] |
this が r より受方に都合が良い時に真
proofDisproof.h の 117 行で定義されています。
参照先 disproof(), と proof().
参照元 betterForDefense().
bool osl::checkmate::ProofDisproof::isCheckmateFail | ( | ) | const [inline] |
proofDisproof.h の 87 行で定義されています。
参照先 disproof().
参照元 osl::checkmate::Dfpn::attack(), osl::checkmate::Dfpn::defense(), isFinal(), osl::checkmate::DfpnTable::List::probe(), osl::checkmate::Dfpn::Node::setNoCheckmateAttack(), osl::checkmate::Dfpn::Node::setNoCheckmateDefense(), と osl::checkmate::DfpnTable::List::testTable().
bool osl::checkmate::ProofDisproof::isCheckmateSuccess | ( | ) | const [inline] |
proofDisproof.h の 86 行で定義されています。
参照先 proof().
参照元 osl::checkmate::FixedDepthSearcher::attack(), osl::checkmate::Dfpn::attack(), osl::checkmate::Dfpn::blockingSimulation(), osl::checkmate::CheckmateIfCapture::cannotCapture(), osl::checkmate::Dfpn::defense(), osl::checkmate::DualDfpn::findProof(), osl::checkmate::DfpnTable::List::findProofOracle(), osl::move_probability::StateInfo::findShortThreatmate(), osl::checkmate::Dfpn::grandParentSimulation(), osl::checkmate::Dfpn::hasCheckmateMove(), isFinal(), osl::checkmate::DualDfpn::isLosingState(), osl::checkmate::DualDfpn::isWinningState(), osl::checkmate::ProofTreeDepthDfpn::orNode(), osl::checkmate::DfpnTable::List::probe(), osl::checkmate::Dfpn::proofOracleAttack(), osl::checkmate::Dfpn::Node::setCheckmateAttack(), osl::checkmate::Dfpn::Node::setCheckmateDefense(), osl::checkmate::DfpnTable::List::showProofOracles(), と osl::checkmate::DfpnTable::List::testTable().
bool osl::checkmate::ProofDisproof::isFinal | ( | ) | const [inline] |
proofDisproof.h の 88 行で定義されています。
参照先 isCheckmateFail(), と isCheckmateSuccess().
参照元 osl::checkmate::Dfpn::attack(), osl::checkmate::Dfpn::defense(), osl::checkmate::DualDfpn::findProof(), osl::move_probability::StateInfo::findShortThreatmate(), osl::checkmate::Dfpn::hasCheckmateMove(), isUnknown(), osl::checkmate::Dfpn::proofOracleAttack(), osl::checkmate::Dfpn::proofOracleDefense(), osl::checkmate::Dfpn::Node::setLoopDetection(), osl::checkmate::DfpnTable::List::store(), と osl::checkmate::Dfpn::tryProofMain().
bool osl::checkmate::ProofDisproof::isLoopDetection | ( | ) | const [inline] |
proofDisproof.h の 97 行で定義されています。
参照先 LoopDetection(), と pdp.
参照元 osl::checkmate::DfpnTable::addDag(), osl::checkmate::Dfpn::attack(), osl::checkmate::Dfpn::defense(), osl::checkmate::DualDfpn::findProof(), osl::checkmate::Dfpn::proofOracleDefense(), osl::checkmate::Dfpn::Node::setLoopDetection(), osl::checkmate::Dfpn::Node::setNoCheckmateAttack(), osl::checkmate::Dfpn::Node::setNoCheckmateDefense(), と osl::checkmate::DfpnTable::store().
bool osl::checkmate::ProofDisproof::isPawnDropFoul | ( | Move | move | ) | const [inline] |
打歩詰めなら真
proofDisproof.h の 92 行で定義されています。
参照先 osl::Move::isDrop(), osl::Move::isNormal(), NoEscape(), pdp, と osl::Move::ptype().
bool osl::checkmate::ProofDisproof::isUnknown | ( | ) | const [inline] |
proofDisproof.h の 89 行で定義されています。
参照先 isFinal().
static const ProofDisproof osl::checkmate::ProofDisproof::LoopDetection | ( | ) | [inline, static] |
proofDisproof.h の 78 行で定義されています。
参照先 LOOP_DETECTION_PROOF, と ProofDisproof().
参照元 osl::checkmate::Dfpn::attack(), osl::checkmate::DualDfpn::findProof(), osl::checkmate::Dfpn::hasCheckmateMove(), osl::checkmate::Dfpn::hasEscapeMove(), isLoopDetection(), osl::checkmate::operator<<(), と osl::checkmate::Dfpn::tryProofMain().
static const ProofDisproof osl::checkmate::ProofDisproof::make | ( | unsigned int | proof, | |
unsigned int | disproof | |||
) | [inline, static, private] |
static const ProofDisproof osl::checkmate::ProofDisproof::makeDirect | ( | unsigned long long | value | ) | [inline, static] |
proofDisproof.h の 71 行で定義されています。
参照先 ProofDisproof().
static const ProofDisproof osl::checkmate::ProofDisproof::NoCheckmate | ( | ) | [inline, static] |
proofDisproof.h の 76 行で定義されています。
参照先 NO_CHECK_MATE_PROOF, と ProofDisproof().
参照元 osl::checkmate::FixedDepthSearcher::attack(), osl::checkmate::Dfpn::attack(), osl::checkmate::FixedDepthSearcher::defense(), osl::checkmate::Dfpn::hasEscapeMove(), osl::checkmate::operator<<(), osl::checkmate::Dfpn::proofOracleDefense(), と osl::checkmate::Dfpn::setIllegal().
static const ProofDisproof osl::checkmate::ProofDisproof::NoEscape | ( | ) | [inline, static] |
proofDisproof.h の 74 行で定義されています。
参照先 NO_ESCAPE_DISPROOF, と ProofDisproof().
参照元 osl::checkmate::Dfpn::attack(), osl::checkmate::FixedDepthSearcher::attackMayUnsafe(), osl::checkmate::FixedDepthSearcher::defense(), osl::checkmate::Dfpn::defense(), osl::checkmate::FixedDepthSearcher::defenseEstimation(), osl::checkmate::Dfpn::hasEscapeMove(), isPawnDropFoul(), osl::checkmate::operator<<(), osl::checkmate::Dfpn::proofOracleAttack(), と osl::checkmate::Dfpn::proofOracleDefense().
static const ProofDisproof osl::checkmate::ProofDisproof::PawnCheckmate | ( | ) | [inline, static] |
proofDisproof.h の 77 行で定義されています。
参照先 PAWN_CHECK_MATE_PROOF, と ProofDisproof().
参照元 osl::checkmate::FixedDepthSearcher::attack(), osl::checkmate::Dfpn::attack(), osl::checkmate::FixedDepthSearcher::defense(), osl::checkmate::FixedDepthSearcher::defenseEstimation(), osl::checkmate::Dfpn::hasEscapeMove(), osl::checkmate::operator<<(), と osl::checkmate::Dfpn::proofOracleAttack().
unsigned int osl::checkmate::ProofDisproof::proof | ( | ) | const [inline] |
proofDisproof.h の 84 行で定義されています。
参照先 pdp.
参照元 osl::checkmate::FixedDepthSearcher::attack(), osl::checkmate::Dfpn::blockingSimulation(), osl::checkmate::Dfpn::defense(), osl::checkmate::Dfpn::grandParentSimulation(), isBetterForAttack(), isBetterForDefense(), isCheckmateSuccess(), osl::checkmate::ProofNumberTable::libertyAfterAllCheck(), osl::checkmate::operator<<(), と osl::checkmate::DfpnRecord::proof().
void osl::checkmate::ProofDisproof::testConsistency | ( | ) | [static, private] |
proofDisproof.cc の 5 行で定義されています。
参照先 BigProofNumber, NO_CHECK_MATE_PROOF, PAWN_CHECK_MATE_PROOF, と osl::static_assert().
unsigned long long osl::checkmate::ProofDisproof::ulonglongValue | ( | ) | const [inline] |
proofDisproof.h の 99 行で定義されています。
参照先 pdp.
参照元 osl::checkmate::operator<(), と osl::checkmate::operator==().
static const ProofDisproof osl::checkmate::ProofDisproof::Unknown | ( | ) | [inline, static] |
proofDisproof.h の 80 行で定義されています。
参照先 ProofDisproof().
const unsigned int osl::checkmate::ProofDisproof::BigProofNumber = PROOF_MAX [static] |
proofDisproof.h の 101 行で定義されています。
参照元 testConsistency().
unsigned long long osl::checkmate::ProofDisproof::pdp [private] |
proofDisproof.h の 18 行で定義されています。
参照元 disproof(), isLoopDetection(), isPawnDropFoul(), proof(), と ulonglongValue().