22 class RepetitionCounter;
36 explicit DualDfpn(uint64_t ignored=std::numeric_limits<uint64_t>::max());
55 return findProof(node_limit, state, key, path, best_move, last_move)
70 bool isWinningStateParallel(
int node_limit,
const NumEffectState& state,
73 bool isWinningStateParallel(
int node_limit,
const NumEffectState& state,
85 void runGC(
bool verbose=
false,
size_t memory_use_ratio_1000=0);
101 using checkmate::DualDfpn;
static const Move INVALID()
void runGC(bool verbose=false, size_t memory_use_ratio_1000=0)
bool isLosingState(int node_limit, const NumEffectState &state, const HashKey &key, const PathEncoding &path, Move last_move=Move::INVALID())
Dfpn & prepareDfpn(Player attack)
void setVerbose(int level=1)
bool isWinningState(int node_limit, const NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, Move last_move=Move::INVALID())
詰みを発見.
size_t totalNodeCount() const
Dfpn & prepareDfpnSmall(Player attack)
ProofDisproof findProof(int node_limit, const NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, Move last_move=Move::INVALID())
size_t mainNodeCount() const
int distance(Player attack, const HashKey &key)
void writeRootHistory(const RepetitionCounter &counter, const MoveStack &moves, const SimpleState &state, Player attack)
std::shared_ptr< Shared > shared
void setRootPlayer(Player)
const DfpnTable & table(Player) const
std::unique_ptr< Local > local
証明数(proof number)と反証数(disproof number).
bool isCheckmateSuccess() const