#include <searcher.h>
searcher.h の 20 行で定義されています。
Searcher::Searcher | ( | Player | attack, | |
size_t | capacity, | |||
int | verbose | |||
) |
Searcher::~Searcher | ( | ) |
searcher.cc の 32 行で定義されています。
const osl::Move Searcher::search | ( | HashEffectState & | state, | |
int | max_depth | |||
) |
iterative deepening, widening
searcher.cc の 37 行で定義されています。
参照先 osl::brinkmate::BrinkmateRecord::best_move, count, osl::Move::INVALID(), osl::brinkmate::isAttackSuccess(), max_depth, max_threshold, showBestMoves(), table, osl::brinkmate::UNKNOWN, と verbose.
osl::brinkmate::BrinkmateResult Searcher::search | ( | HashEffectState & | state, | |
int | depth, | |||
int | tnode, | |||
int | cnode, | |||
int | dcm, | |||
int | rnode | |||
) |
TableFull |
searcher.cc の 129 行で定義されています。
参照先 attack(), osl::brinkmate::Configuration::checkmate_node, osl::search::BigramKillerMove::clear(), osl::brinkmate::Configuration::defense_checkmate_node, osl::brinkmate::Configuration::defense_checkmove_count, osl::brinkmate::Configuration::depth, osl::Move::init(), osl::brinkmate::isSearchResult(), killer_moves, report_do_undo, root_conf, osl::brinkmate::Configuration::threatmate_node, と verbose.
osl::brinkmate::BrinkmateResult Searcher::attack | ( | ) |
searcher.cc の 343 行で定義されています。
参照先 osl::brinkmate::BrinkmateTable::attacker, osl::brinkmate::BrinkmateRecord::best_move, osl::brinkmate::CHECKMATE, osl::brinkmate::Configuration::checkmate_node, osl::brinkmate::BrinkmateRecord::conf, count, osl::brinkmate::Configuration::defense_checkmate_node, osl::brinkmate::Configuration::defense_checkmove_count, osl::brinkmate::Configuration::depth, depthLeft(), disprovedByRecord(), osl::find(), osl::search::BigramKillerMove::getMove(), osl::brinkmate::BrinkmateRecord::is_visited, osl::Move::isNormal(), osl::brinkmate::BrinkmateState::isWinningState(), killer_moves, osl::brinkmate::BrinkmateState::lastMove(), osl::brinkmate::LOOP_DETECTION, max_threshold, osl::brinkmate::BrinkmateRecord::moves, osl::brinkmate::NOT_BRINKMATE, provedByRecord(), osl::brinkmate::BrinkmateRecord::result, root_conf, setUpAttack(), osl::brinkmate::BrinkmateState::state(), state, stop_flag, table, osl::brinkmate::BrinkmateState::turn(), と osl::brinkmate::BrinkmateRecord::visit_count.
osl::brinkmate::BrinkmateResult Searcher::defense | ( | ) |
searcher.cc の 512 行で定義されています。
参照先 all_moves, osl::alt(), osl::brinkmate::BrinkmateTable::attacker, osl::brinkmate::BrinkmateRecord::best_move, osl::brinkmate::betterForDefense(), osl::brinkmate::BRINKMATE, osl::brinkmate::CHECKMATE, count, osl::brinkmate::Configuration::defense_checkmate_node, depthLeft(), disprovedByRecord(), osl::find(), osl::search::BigramKillerMove::getMove(), osl::brinkmate::INVERSE_CHECKMATE, osl::brinkmate::BrinkmateRecord::is_visited, osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::Move::isNormal(), osl::checkmate::ProofDisproof::isUnknown(), osl::brinkmate::BrinkmateState::isWinningState(), killer_moves, osl::brinkmate::BrinkmateState::lastMove(), osl::brinkmate::LOOP_DETECTION, osl::brinkmate::BrinkmateRecord::moves, osl::brinkmate::NOT_BRINKMATE, provedByRecord(), report_do_undo, osl::brinkmate::BrinkmateRecord::result, root_conf, setUpDefense(), osl::brinkmate::BrinkmateState::state(), state, table, osl::brinkmate::BrinkmateState::testWinningState(), osl::brinkmate::BrinkmateState::turn(), verbose, と osl::brinkmate::BrinkmateRecord::visit_count.
参照元 attack().
void osl::brinkmate::Searcher::setStopFlag | ( | volatile int * | flag | ) | [inline] |
int osl::brinkmate::Searcher::depthLeft | ( | ) | const [inline] |
bool Searcher::provedByRecord | ( | const BrinkmateRecord & | record | ) | const |
searcher.cc の 591 行で定義されています。
参照先 osl::brinkmate::BRINKMATE, osl::brinkmate::CHECKMATE, osl::brinkmate::BrinkmateRecord::conf, osl::brinkmate::Configuration::defense_checkmate_node, osl::brinkmate::Configuration::defense_checkmove_count, osl::brinkmate::Configuration::depth, depthLeft(), osl::brinkmate::BrinkmateRecord::result, と root_conf.
bool Searcher::disprovedByRecord | ( | const BrinkmateRecord & | record | ) | const |
searcher.cc の 605 行で定義されています。
参照先 osl::brinkmate::Configuration::checkmate_node, osl::brinkmate::BrinkmateRecord::conf, osl::brinkmate::Configuration::depth, depthLeft(), osl::brinkmate::INVERSE_CHECKMATE, osl::brinkmate::LOOP_DETECTION, osl::brinkmate::NOT_BRINKMATE, osl::brinkmate::BrinkmateRecord::result, root_conf, と osl::brinkmate::Configuration::threatmate_node.
void Searcher::showBestMoves | ( | ) | const |
searcher.cc の 619 行で定義されています。
参照先 osl::brinkmate::BrinkmateRecord::best_move, osl::brinkmate::CHECKMATE, osl::brinkmate::BrinkmateRecord::conf, osl::brinkmate::Configuration::depth, osl::brinkmate::INVERSE_CHECKMATE, osl::Move::isNormal(), max_depth, osl::brinkmate::BrinkmateRecord::moves, osl::brinkmate::BrinkmateRecord::result, show(), osl::brinkmate::BrinkmateState::state(), state, と table.
参照元 search().
void Searcher::showTree | ( | const HashKey & | key, | |
int | depth = 1 | |||
) | const |
searcher.cc の 655 行で定義されています。
参照先 osl::brinkmate::BrinkmateRecord::best_move, osl::brinkmate::BrinkmateRecord::conf, osl::brinkmate::Configuration::defense_checkmove_count, osl::brinkmate::Configuration::depth, osl::Move::isNormal(), max_depth, osl::brinkmate::BrinkmateRecord::moves, osl::brinkmate::BrinkmateRecord::result, root_conf, show(), table, osl::brinkmate::Configuration::threatmate_node, と osl::brinkmate::BrinkmateRecord::visit_count.
int osl::brinkmate::Searcher::getCount | ( | ) | const [inline] |
static bool osl::brinkmate::Searcher::threatmateCandidate | ( | const BrinkmateState & | , | |
Move | ||||
) | [static] |
参照元 setUpAttack().
bool Searcher::threatmateCandidate | ( | const BrinkmateState & | state, | |
Move | move, | |||
Position | centered_king | |||
) | [static] |
searcher.cc の 167 行で定義されています。
参照先 osl::Board_Table, osl::Move::capturePtype(), osl::Piece::EMPTY(), osl::BoardTable::getOffset(), osl::hasEffect(), osl::PtypeTable::hasLongMove(), osl::Move::isDrop(), osl::Neighboring8::isNeighboring8(), osl::Move::isNormal(), osl::Piece::isPiece(), osl::LANCE, osl::brinkmate::BrinkmateState::lastMove(), osl::Piece::owner(), osl::PAWN, osl::Move::player(), osl::Piece::ptype(), osl::Move::ptype(), osl::PTYPE_EMPTY, osl::Ptype_Table, osl::Move::ptypeO(), osl::ROOK, osl::brinkmate::BrinkmateState::state(), osl::Move::to(), osl::U, osl::unpromote(), osl::Position::x(), と osl::Position::y().
bool Searcher::attack | ( | BrinkmateRecord * | record, | |
Move | todo | |||
) | [private] |
searcher.cc の 311 行で定義されています。
参照先 osl::alt(), osl::brinkmate::BrinkmateRecord::best_move, osl::brinkmate::betterForAttack(), defense(), osl::brinkmate::BrinkmateState::depth(), osl::brinkmate::BrinkmateRecord::is_visited, osl::brinkmate::isAttackSuccess(), osl::Move::isNormal(), osl::brinkmate::isSearchResult(), killer_moves, osl::brinkmate::BrinkmateState::lastMove(), osl::Move::player(), osl::brinkmate::BrinkmateState::pop(), osl::brinkmate::BrinkmateState::push(), report_do_undo, osl::brinkmate::BrinkmateRecord::result, osl::search::BigramKillerMove::setMove(), osl::brinkmate::BrinkmateState::state(), state, osl::Move::to(), osl::brinkmate::BrinkmateState::turn(), と verbose.
bool Searcher::defense | ( | BrinkmateRecord * | record, | |
Move | todo | |||
) | [private] |
searcher.cc の 451 行で定義されています。
参照先 osl::alt(), attack(), osl::brinkmate::BrinkmateRecord::best_move, osl::brinkmate::betterForDefense(), osl::brinkmate::BRINKMATE, osl::brinkmate::Configuration::defense_checkmove_count, osl::brinkmate::BrinkmateState::defenseCheckCount(), osl::brinkmate::BrinkmateState::depth(), osl::brinkmate::BrinkmateRecord::is_visited, osl::brinkmate::isAttackSuccess(), osl::Move::isDrop(), osl::Neighboring8::isNeighboring8(), osl::brinkmate::isSearchResult(), killer_moves, osl::brinkmate::BrinkmateState::lastMove(), osl::Move::player(), osl::brinkmate::BrinkmateState::pop(), osl::brinkmate::BrinkmateState::push(), report_do_undo, osl::brinkmate::BrinkmateRecord::result, root_conf, osl::search::BigramKillerMove::setMove(), osl::brinkmate::BrinkmateState::state(), state, osl::Move::to(), と verbose.
void Searcher::setUpAttack | ( | BrinkmateRecord * | record | ) | [private] |
searcher.cc の 212 行で定義されています。
参照先 osl::brinkmate::ThreatmatePool::add(), osl::Centering3x3::adjustCenter(), osl::alt(), osl::brinkmate::Configuration::checkmate_node, osl::brinkmate::BrinkmateRecord::conf, osl::brinkmate::Configuration::defense_checkmate_node, osl::brinkmate::Configuration::defense_checkmove_count, osl::brinkmate::BrinkmateState::depth(), osl::brinkmate::Configuration::depth, depthLeft(), osl::find(), osl::brinkmate::ThreatmatePool::find(), osl::brinkmate::INVERSE_CHECKMATE, osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::ProofDisproof::isUnknown(), osl::eval::max(), max_threshold, moves, osl::brinkmate::BrinkmateRecord::moves, osl::brinkmate::NOT_BRINKMATE, pool, osl::brinkmate::BrinkmateState::pop(), osl::brinkmate::BrinkmateState::push(), osl::brinkmate::BrinkmateRecord::result, root_conf, osl::brinkmate::BrinkmateState::state(), state, osl::brinkmate::BrinkmateState::testThreatmateState(), osl::brinkmate::Configuration::threatmate_node, threatmateCandidate(), osl::brinkmate::BrinkmateState::turn(), と osl::brinkmate::WORST_ATTACK.
参照元 attack().
void Searcher::setUpDefense | ( | BrinkmateRecord * | record | ) | [private] |
searcher.cc の 404 行で定義されています。
参照先 all_moves, osl::brinkmate::CHECKMATE, osl::brinkmate::Configuration::checkmate_node, osl::brinkmate::BrinkmateRecord::conf, osl::brinkmate::Configuration::defense_checkmate_node, osl::brinkmate::Configuration::defense_checkmove_count, osl::brinkmate::Configuration::depth, depthLeft(), osl::brinkmate::BrinkmateState::isEffectiveDefense(), osl::eval::max(), osl::brinkmate::BrinkmateRecord::moves, osl::brinkmate::BrinkmateRecord::result, root_conf, osl::brinkmate::BrinkmateState::state(), state, osl::brinkmate::Configuration::threatmate_node, と osl::brinkmate::WORST_DEFENSE.
参照元 defense().
searcher.h の 23 行で定義されています。
参照元 attack(), defense(), depthLeft(), Searcher(), setUpAttack(), setUpDefense(), と showBestMoves().
searcher.h の 25 行で定義されています。
参照元 attack(), defense(), depthLeft(), disprovedByRecord(), provedByRecord(), search(), setUpAttack(), setUpDefense(), と showTree().
ThreatmatePool osl::brinkmate::Searcher::pool [private] |
volatile int* osl::brinkmate::Searcher::stop_flag [private] |
int osl::brinkmate::Searcher::count [private] |
int osl::brinkmate::Searcher::max_depth [private] |
int osl::brinkmate::Searcher::verbose [private] |