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