All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
osl::checkmate::ProofDisproof Class Reference

証明数(proof number)と反証数(disproof number). More...

#include <proofDisproof.h>

Public Types

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 Member Functions

 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
 打歩詰めなら真 More...
 
bool isLoopDetection () const
 
unsigned long long ulonglongValue () const
 
bool isBetterForAttack (const ProofDisproof &r) const
 this が r より攻方に都合が良い時に真 More...
 
bool isBetterForDefense (const ProofDisproof &r) const
 this が r より受方に都合が良い時に真 More...
 
const ProofDisproofbetterForAttack (const ProofDisproof &r) const
 攻方に都合が良い方を返す More...
 
const ProofDisproofbetterForDefense (const ProofDisproof &r) const
 受方に都合が良い方を返す More...
 

Static Public Member Functions

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 ()
 攻方にも受方にも不都合な仮想的な数 More...
 

Static Public Attributes

static const unsigned int BigProofNumber =PROOF_MAX
 

Private Member Functions

 ProofDisproof (unsigned long long value)
 range check をしない private バージョン More...
 

Static Private Member Functions

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 Attributes

unsigned long long pdp
 

Detailed Description

証明数(proof number)と反証数(disproof number).

詰み局面と確定した時は proofNumber=0 不詰み局面と確定した時は disproofNumber=0

Definition at line 16 of file proofDisproof.h.

Member Enumeration Documentation

anonymous enum
Enumerator
PROOF_SHIFT 
DISPROOF_MASK 
PROOF_MAX 
DISPROOF_MAX 
NO_ESCAPE_DISPROOF 

反証数の定数: 詰んだ時には,詰の種類の区別に利用

CHECK_MATE_DISPROOF 
NO_CHECK_MATE_PROOF 

証明数の定数: 反証された時には,不詰の種類の区別に利用

PAWN_CHECK_MATE_PROOF 
LOOP_DETECTION_PROOF 
ATTACK_BACK_PROOF 

Definition at line 20 of file proofDisproof.h.

anonymous enum
Enumerator
DISPROOF_LIMIT 

通常の反証数の上限

PROOF_LIMIT 

通常の証明数の上限

Definition at line 37 of file proofDisproof.h.

Constructor & Destructor Documentation

osl::checkmate::ProofDisproof::ProofDisproof ( unsigned long long  value)
inlineprivate

range check をしない private バージョン

Definition at line 50 of file proofDisproof.h.

osl::checkmate::ProofDisproof::ProofDisproof ( )
inline
osl::checkmate::ProofDisproof::ProofDisproof ( unsigned int  proof,
unsigned int  disproof 
)
inline

Definition at line 62 of file proofDisproof.h.

References DISPROOF_LIMIT, DISPROOF_MAX, PROOF_LIMIT, and PROOF_MAX.

Member Function Documentation

static const ProofDisproof osl::checkmate::ProofDisproof::AttackBack ( )
inlinestatic
const ProofDisproof& osl::checkmate::ProofDisproof::betterForAttack ( const ProofDisproof r) const
inline

攻方に都合が良い方を返す

Definition at line 128 of file proofDisproof.h.

References isBetterForAttack().

const ProofDisproof& osl::checkmate::ProofDisproof::betterForDefense ( const ProofDisproof r) const
inline

受方に都合が良い方を返す

Definition at line 135 of file proofDisproof.h.

References isBetterForDefense().

static const ProofDisproof osl::checkmate::ProofDisproof::Bottom ( )
inlinestatic

攻方にも受方にも不都合な仮想的な数

Definition at line 82 of file proofDisproof.h.

References DISPROOF_MAX, make(), and PROOF_MAX.

Referenced by osl::ntesuki::NtesukiSearcher::handleTonshi().

static const ProofDisproof osl::checkmate::ProofDisproof::Checkmate ( )
inlinestatic
static unsigned long long osl::checkmate::ProofDisproof::compose ( unsigned long long  proof,
unsigned long long  disproof 
)
inlinestaticprivate

Definition at line 45 of file proofDisproof.h.

References disproof(), and PROOF_SHIFT.

Referenced by make().

unsigned int osl::checkmate::ProofDisproof::disproof ( ) const
inline
bool osl::checkmate::ProofDisproof::isBetterForAttack ( const ProofDisproof r) const
inline

this が r より攻方に都合が良い時に真

Definition at line 106 of file proofDisproof.h.

References disproof(), and proof().

Referenced by betterForAttack().

bool osl::checkmate::ProofDisproof::isBetterForDefense ( const ProofDisproof r) const
inline

this が r より受方に都合が良い時に真

Definition at line 117 of file proofDisproof.h.

References disproof(), and proof().

Referenced by betterForDefense().

bool osl::checkmate::ProofDisproof::isCheckmateFail ( ) const
inline
bool osl::checkmate::ProofDisproof::isCheckmateSuccess ( ) const
inline

Definition at line 86 of file proofDisproof.h.

References proof().

Referenced by osl::checkmate::FixedDepthSearcher2::attack(), osl::ntesuki::OracleProverLight::attack(), osl::checkmate::FixedDepthSearcher::attack(), osl::ntesuki::NtesukiSearcher::attack(), osl::checkmate::Dfpn::attack(), osl::ntesuki::NtesukiSimulationSearcher::attackForProof(), osl::checkmate::Dfpn::blockingSimulation(), osl::ntesuki::NtesukiRecord::calcProofPiecesAnd(), osl::checkmate::CheckmateIfCapture::cannotCapture(), osl::ntesuki::OracleProverLight::defense(), osl::checkmate::Dfpn::defense(), osl::ntesuki::NtesukiSimulationSearcher::defenseForProof(), osl::ntesuki::NtesukiSearcher::defenseWithPlayer(), find_problem(), osl::checkmate::DualDfpn::findProof(), osl::checkmate::DfpnTable::List::findProofOracle(), osl::move_probability::StateInfo::findShortThreatmate(), osl::checkmate::Dfpn::grandParentSimulation(), osl::ntesuki::NtesukiSearcher::handleTonshi(), osl::checkmate::Dfpn::hasCheckmateMove(), osl::annotate::Analyzer::isCheckmate(), osl::ntesuki::NtesukiRecord::isDominatedByProofPieces(), isFinal(), osl::checkmate::DualDfpn::isLosingState(), osl::search::SearchState2Core::isThreatmateStateShort(), osl::ntesuki::NtesukiRecord::isWin(), osl::checkmate::DualDfpn::isWinningState(), osl::search::SearchState2Core::isWinningStateShort(), osl::checkmate::ProofTreeDepthDfpn::orNode(), osl::checkmate::DfpnTable::List::probe(), osl::checkmate::Dfpn::proofOracleAttack(), search(), osl::ntesuki::NtesukiSearcher::search(), osl::checkmate::Dfpn::Node::setCheckmateAttack(), osl::checkmate::Dfpn::Node::setCheckmateDefense(), osl::ntesuki::NtesukiRecord::setFinal(), osl::ntesuki::NtesukiRecord::setUpAttackNode(), osl::ntesuki::NtesukiRecord::setUpDefenseNode(), osl::checkmate::DfpnTable::List::showProofOracles(), osl::ntesuki::NtesukiSearcher::simulateSiblingsSuccess(), osl::ntesuki::OracleProverLight::startFromAttack(), osl::ntesuki::NtesukiSimulationSearcher::startFromAttackProof(), osl::ntesuki::OracleProverLight::startFromDefense(), osl::ntesuki::NtesukiSimulationSearcher::startFromDefenseProof(), and osl::checkmate::DfpnTable::List::testTable().

bool osl::checkmate::ProofDisproof::isFinal ( ) const
inline
bool osl::checkmate::ProofDisproof::isLoopDetection ( ) const
inline
bool osl::checkmate::ProofDisproof::isPawnDropFoul ( Move  move) const
inline

打歩詰めなら真

Definition at line 92 of file proofDisproof.h.

References osl::Move::isDrop(), osl::Move::isNormal(), NoEscape(), osl::PAWN, pdp, and osl::Move::ptype().

bool osl::checkmate::ProofDisproof::isUnknown ( ) const
inline

Definition at line 89 of file proofDisproof.h.

References isFinal().

Referenced by osl::ntesuki::NtesukiSearcher::defenseWithPlayer().

static const ProofDisproof osl::checkmate::ProofDisproof::LoopDetection ( )
inlinestatic
static const ProofDisproof osl::checkmate::ProofDisproof::make ( unsigned int  proof,
unsigned int  disproof 
)
inlinestaticprivate

Definition at line 54 of file proofDisproof.h.

References compose(), and ProofDisproof().

Referenced by Bottom().

static const ProofDisproof osl::checkmate::ProofDisproof::makeDirect ( unsigned long long  value)
inlinestatic

Definition at line 71 of file proofDisproof.h.

References ProofDisproof().

Referenced by main().

static const ProofDisproof osl::checkmate::ProofDisproof::NoCheckmate ( )
inlinestatic
static const ProofDisproof osl::checkmate::ProofDisproof::NoEscape ( )
inlinestatic
static const ProofDisproof osl::checkmate::ProofDisproof::PawnCheckmate ( )
inlinestatic
unsigned int osl::checkmate::ProofDisproof::proof ( ) const
inline
void osl::checkmate::ProofDisproof::testConsistency ( )
staticprivate

Definition at line 6 of file proofDisproof.cc.

References BOOST_STATIC_ASSERT().

unsigned long long osl::checkmate::ProofDisproof::ulonglongValue ( ) const
inline

Definition at line 99 of file proofDisproof.h.

References pdp.

Referenced by main(), osl::checkmate::operator<(), and osl::checkmate::operator==().

static const ProofDisproof osl::checkmate::ProofDisproof::Unknown ( )
inlinestatic

Definition at line 80 of file proofDisproof.h.

References ProofDisproof().

Member Data Documentation

const unsigned int osl::checkmate::ProofDisproof::BigProofNumber =PROOF_MAX
static
unsigned long long osl::checkmate::ProofDisproof::pdp
private

Definition at line 18 of file proofDisproof.h.

Referenced by disproof(), isLoopDetection(), isPawnDropFoul(), proof(), and ulonglongValue().


The documentation for this class was generated from the following files: