1#ifndef _PROOF_DISPROOF_H
2#define _PROOF_DISPROOF_H
18 unsigned long long pdp;
44 static unsigned long long
108 const unsigned int lp =
proof();
109 const unsigned int rp = r.
proof();
120 const unsigned int rd = r.
disproof();
157 using checkmate::ProofDisproof;
bool isNormal() const
INVALID でも PASS でもない.
証明数(proof number)と反証数(disproof number).
bool isCheckmateFail() const
static const ProofDisproof PawnCheckmate()
static const ProofDisproof AttackBack()
static unsigned long long compose(unsigned long long proof, unsigned long long disproof)
static const ProofDisproof LoopDetection()
unsigned long long ulonglongValue() const
static const ProofDisproof Bottom()
攻方にも受方にも不都合な仮想的な数
static const ProofDisproof NoEscape()
@ NO_ESCAPE_DISPROOF
反証数の定数: 詰んだ時には,詰の種類の区別に利用
@ NO_CHECK_MATE_PROOF
証明数の定数: 反証された時には,不詰の種類の区別に利用
static const ProofDisproof NoCheckmate()
static const unsigned int BigProofNumber
const ProofDisproof & betterForDefense(const ProofDisproof &r) const
受方に都合が良い方を返す
static const ProofDisproof makeDirect(unsigned long long value)
ProofDisproof(unsigned long long value)
range check をしない private バージョン
ProofDisproof(unsigned int proof, unsigned int disproof)
bool isBetterForAttack(const ProofDisproof &r) const
this が r より攻方に都合が良い時に真
bool isCheckmateSuccess() const
@ DISPROOF_LIMIT
通常の反証数の上限
const ProofDisproof & betterForAttack(const ProofDisproof &r) const
攻方に都合が良い方を返す
bool isLoopDetection() const
unsigned int disproof() const
static void testConsistency()
unsigned int proof() const
bool isPawnDropFoul(Move move) const
打歩詰めなら真
static const ProofDisproof make(unsigned int proof, unsigned int disproof)
static const ProofDisproof Checkmate()
bool isBetterForDefense(const ProofDisproof &r) const
this が r より受方に都合が良い時に真
static const ProofDisproof Unknown()
std::ostream & operator<<(std::ostream &, King8Info)
bool operator!=(const ProofDisproof &l, const ProofDisproof &r)
bool operator==(const ProofDisproof &l, const ProofDisproof &r)
bool operator<(const ProofDisproof &l, const ProofDisproof &r)