Public 型 | Public メソッド | Static Public メソッド | Static Public 変数 | Private メソッド | Static Private メソッド | Private 変数

クラス osl::checkmate::ProofDisproof

証明数(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 ProofDisproofbetterForAttack (const ProofDisproof &r) const
 攻方に都合が良い方を返す
const ProofDisproofbetterForDefense (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.h16 行で定義されています。


列挙型

anonymous enum
列挙型の値:
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 

proofDisproof.h20 行で定義されています。

anonymous enum
列挙型の値:
DISPROOF_LIMIT 

通常の反証数の上限

PROOF_LIMIT 

通常の証明数の上限

proofDisproof.h37 行で定義されています。


コンストラクタとデストラクタ

osl::checkmate::ProofDisproof::ProofDisproof ( unsigned long long  value  )  [inline, private]

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

proofDisproof.h50 行で定義されています。

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

proofDisproof.h62 行で定義されています。

参照先 DISPROOF_LIMIT, DISPROOF_MAX, PROOF_LIMIT, と PROOF_MAX.


関数

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

proofDisproof.h79 行で定義されています。

参照先 ATTACK_BACK_PROOF, と ProofDisproof().

参照元 osl::checkmate::operator<<().

const ProofDisproof& osl::checkmate::ProofDisproof::betterForAttack ( const ProofDisproof r  )  const [inline]

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

proofDisproof.h128 行で定義されています。

参照先 isBetterForAttack().

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

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

proofDisproof.h135 行で定義されています。

参照先 isBetterForDefense().

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

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

proofDisproof.h82 行で定義されています。

参照先 DISPROOF_MAX, make(), と 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]

proofDisproof.h45 行で定義されています。

参照先 PROOF_SHIFT.

参照元 make().

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

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

proofDisproof.h106 行で定義されています。

参照先 disproof(), と proof().

参照元 betterForAttack().

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

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

proofDisproof.h117 行で定義されています。

参照先 disproof(), と proof().

参照元 betterForDefense().

bool osl::checkmate::ProofDisproof::isCheckmateFail (  )  const [inline]
bool osl::checkmate::ProofDisproof::isCheckmateSuccess (  )  const [inline]
bool osl::checkmate::ProofDisproof::isFinal (  )  const [inline]
bool osl::checkmate::ProofDisproof::isLoopDetection (  )  const [inline]
bool osl::checkmate::ProofDisproof::isPawnDropFoul ( Move  move  )  const [inline]

打歩詰めなら真

proofDisproof.h92 行で定義されています。

参照先 osl::Move::isDrop(), osl::Move::isNormal(), NoEscape(), pdp, と osl::Move::ptype().

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

proofDisproof.h89 行で定義されています。

参照先 isFinal().

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

proofDisproof.h54 行で定義されています。

参照先 compose(), と ProofDisproof().

参照元 Bottom().

static const ProofDisproof osl::checkmate::ProofDisproof::makeDirect ( unsigned long long  value  )  [inline, static]

proofDisproof.h71 行で定義されています。

参照先 ProofDisproof().

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

proofDisproof.cc5 行で定義されています。

参照先 BigProofNumber, NO_CHECK_MATE_PROOF, PAWN_CHECK_MATE_PROOF, と osl::static_assert().

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

proofDisproof.h99 行で定義されています。

参照先 pdp.

参照元 osl::checkmate::operator<(), と osl::checkmate::operator==().

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

proofDisproof.h80 行で定義されています。

参照先 ProofDisproof().


変数

const unsigned int osl::checkmate::ProofDisproof::BigProofNumber = PROOF_MAX [static]

proofDisproof.h101 行で定義されています。

参照元 testConsistency().

unsigned long long osl::checkmate::ProofDisproof::pdp [private]

proofDisproof.h18 行で定義されています。

参照元 disproof(), isLoopDetection(), isPawnDropFoul(), proof(), と ulonglongValue().


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義