All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes
osl::checkmate::ProofDisproof Class Reference

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

#include <proofDisproof.h>

List of all members.

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
 打歩詰めなら真
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 ProofDisproofbetterForAttack (const ProofDisproof &r) const
 攻方に都合が良い方を返す
const ProofDisproofbetterForDefense (const ProofDisproof &r) const
 受方に都合が良い方を返す

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

Static Public Attributes

static const unsigned int BigProofNumber = PROOF_MAX

Private Member Functions

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

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) [inline, private]

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

Definition at line 50 of file proofDisproof.h.

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 ( ) [inline, static]

Definition at line 79 of file proofDisproof.h.

References ATTACK_BACK_PROOF, and ProofDisproof().

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

Definition at line 128 of file proofDisproof.h.

References isBetterForAttack().

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

Definition at line 135 of file proofDisproof.h.

References isBetterForDefense().

static const ProofDisproof osl::checkmate::ProofDisproof::Bottom ( ) [inline, static]

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

Definition at line 82 of file proofDisproof.h.

References DISPROOF_MAX, make(), and PROOF_MAX.

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]

Definition at line 45 of file proofDisproof.h.

References disproof(), and PROOF_SHIFT.

Referenced by make().

unsigned int osl::checkmate::ProofDisproof::disproof ( ) const [inline]

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

Definition at line 106 of file proofDisproof.h.

References disproof(), and proof().

Referenced by betterForAttack().

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

Definition at line 117 of file proofDisproof.h.

References disproof(), and proof().

Referenced by betterForDefense().

bool osl::checkmate::ProofDisproof::isFinal ( ) 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().

Definition at line 89 of file proofDisproof.h.

References isFinal().

static const ProofDisproof osl::checkmate::ProofDisproof::make ( unsigned int  proof,
unsigned int  disproof 
) [inline, static, private]

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) [inline, static]

Definition at line 71 of file proofDisproof.h.

References ProofDisproof().

static const ProofDisproof osl::checkmate::ProofDisproof::NoCheckmate ( ) [inline, static]
static const ProofDisproof osl::checkmate::ProofDisproof::NoEscape ( ) [inline, static]
unsigned int osl::checkmate::ProofDisproof::proof ( ) const [inline]

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 osl::checkmate::operator<(), and osl::checkmate::operator==().

static const ProofDisproof osl::checkmate::ProofDisproof::Unknown ( ) [inline, static]

Definition at line 80 of file proofDisproof.h.

References ProofDisproof().


Member Data Documentation

Definition at line 101 of file proofDisproof.h.

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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines