#include <quiescenceSearch2.h>
Public 型 | |
typedef EvalT | eval_t |
typedef NumEffectState | effect_state_t |
typedef container::MoveVector | MoveVector |
Public メソッド | |
QuiescenceSearch2 (SearchState2Core &s, SimpleHashTable &t) | |
template<Player P> | |
int | search (eval_t const &ev, Move last_move, int depth=QSearchTraits::MaxDepth) |
int | search (Player P, eval_t const &ev, Move last_move, int depth=QSearchTraits::MaxDepth) |
template<Player P> | |
int | searchIteratively (eval_t const &ev, Move last_move, int depth=QSearchTraits::MaxDepth) |
int | searchIteratively (Player P, eval_t const &ev, Move last_move, int depth=QSearchTraits::MaxDepth) |
template<Player P> | |
int | searchIteratively (int alpha, int beta, eval_t const &ev, Move last_move, int depth) |
template<Player P> | |
int | search (int alpha, int beta, eval_t const &ev, Move last_move, int depth=QSearchTraits::MaxDepth) |
int | search (Player P, int alpha, int beta, eval_t const &ev, Move last_move, int depth) |
template<Player P> | |
int | searchProbCut (int alpha, int beta, eval_t const &ev, Move last_move) |
int | searchProbCut (Player P, int alpha, int beta, eval_t const &ev, Move last_move) |
template<Player P> | |
int | searchInternal (int alpha, int beta, eval_t const &ev, Move last_move, int additional_depth=0) |
template<Player P, bool has_record, bool has_dont_capture, MoveType move_type> | |
bool | examineMoves (QuiescenceRecord *record, int &curVal, const Move *first, const Move *last, int &alpha, int beta, eval_t const &ev, int additional_depth, Position dont_capture=Position::STAND()) |
template<Player P> | |
int | takeBackValue (int alpha, int beta, eval_t const &ev, Move last_move) |
ñʼ֤õ. | |
template<Player P> | |
bool | examineTakeBack (const MoveVector &moves, int &cur_val, int &alpha, int beta, eval_t const &ev) |
template<Player P, bool calm_move_only, bool first_nolmal_move_only> | |
bool | examineTakeBack2 (const MoveVector &moves, QuiescenceThreat &threat2, QuiescenceThreat &threat1, int beta, int beta2, eval_t const &ev) |
üμ֤. | |
template<Player P, Ptype PTYPE> | |
bool | generateAndExamineTakeBack2 (MoveVector &moves, QuiescenceThreat &threat2, QuiescenceThreat &threat1, int beta1, int beta2, eval_t const &ev) |
üμ֤. | |
template<Player P> | |
int | takeBackOrChase (int alpha, int beta, eval_t const &ev, Move last_move) |
last_move ƨǡƨμ֤ޤɷβͤȽ | |
template<Player P> | |
int | staticValueWithThreat (eval_t const &ev, int alpha, QuiescenceThreat &threat1, QuiescenceThreat &threat2) |
template<Player P> | |
int | staticValueWithThreat (eval_t const &ev) |
int | staticValueWithThreat (eval_t const &ev) |
int | nodeCount () const |
const NumEffectState & | currentState () const |
Private 型 | |
typedef FixedEval | base_t |
Private メソッド | |
int | depthFromRoot () const |
rootο | |
int | depth () const |
Ĥ꿼 | |
template<Player P, bool has_record> | |
int | searchMain (QuiescenceRecord *record, int alpha, int beta, eval_t const &ev, Move last_move, int additional_depth) |
template<bool has_record, class TYPE> | |
void | recordGeneration (QuiescenceRecord *record, TYPE type, const MoveVector &moves) |
template<Player P, Ptype PTYPE, bool has_record> | |
bool | examineCapture (QuiescenceRecord *record, int &curVal, MoveVector &working, int &alpha, int beta, eval_t const &ev, Piece last_piece, int additional_depth) |
PTYPE examineMoves Ƥ | |
template<Player P, bool has_record> | |
int | staticValue (eval_t const &ev, int alpha, int beta, QuiescenceRecord *record) |
template<Player P> | |
int | passValue (int alpha, int beta, eval_t const &ev) |
int | currentValueWithLastThreat (eval_t const &ev, Piece last_move_piece) |
Private 変数 | |
SearchState2Core & | state |
SimpleHashTable & | table |
int | root_depth |
int | max_depth |
int | node_count |
õΡɿ |
TODO:
quiescenceSearch2.h の 41 行で定義されています。
typedef FixedEval osl::search::QuiescenceSearch2< EvalT >::base_t [private] |
quiescenceSearch2.h の 43 行で定義されています。
typedef EvalT osl::search::QuiescenceSearch2< EvalT >::eval_t |
quiescenceSearch2.h の 63 行で定義されています。
typedef NumEffectState osl::search::QuiescenceSearch2< EvalT >::effect_state_t |
quiescenceSearch2.h の 64 行で定義されています。
typedef container::MoveVector osl::search::QuiescenceSearch2< EvalT >::MoveVector |
quiescenceSearch2.h の 67 行で定義されています。
osl::search::QuiescenceSearch2< EvalT >::QuiescenceSearch2 | ( | SearchState2Core & | s, | |
SimpleHashTable & | t | |||
) | [inline] |
quiescenceSearch2.h の 69 行で定義されています。
int osl::search::QuiescenceSearch2< EvalT >::depthFromRoot | ( | ) | const [inline, private] |
rootο
quiescenceSearch2.h の 53 行で定義されています。
参照先 osl::PathEncoding::getDepth(), osl::search::SearchState2Core::path(), osl::search::QuiescenceSearch2< EvalT >::root_depth, と osl::search::QuiescenceSearch2< EvalT >::state.
参照元 osl::search::QuiescenceSearch2< EvalT >::currentValueWithLastThreat(), osl::search::QuiescenceSearch2< EvalT >::depth(), osl::search::QuiescenceSearch2< EvalT >::examineMoves(), osl::search::QuiescenceSearch2< EvalT >::examineTakeBack2(), osl::search::QuiescenceSearch2< EvalT >::searchInternal(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), osl::search::QuiescenceSearch2< EvalT >::staticValue(), と osl::search::QuiescenceSearch2< EvalT >::staticValueWithThreat().
int osl::search::QuiescenceSearch2< EvalT >::depth | ( | ) | const [inline, private] |
Ĥ꿼
quiescenceSearch2.h の 58 行で定義されています。
参照先 osl::search::QuiescenceSearch2< EvalT >::depthFromRoot(), と osl::search::QuiescenceSearch2< EvalT >::max_depth.
参照元 osl::search::QuiescenceSearch2< EvalT >::examineMoves(), osl::search::QuiescenceSearch2< EvalT >::examineTakeBack(), osl::search::QuiescenceSearch2< EvalT >::examineTakeBack2(), osl::search::QuiescenceSearch2< EvalT >::search(), osl::search::QuiescenceSearch2< EvalT >::searchInternal(), osl::search::QuiescenceSearch2< EvalT >::searchIteratively(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), osl::search::QuiescenceSearch2< EvalT >::staticValue(), と osl::search::QuiescenceSearch2< EvalT >::staticValueWithThreat().
int osl::search::QuiescenceSearch2< EvalT >::search | ( | eval_t const & | ev, | |
Move | last_move, | |||
int | depth = QSearchTraits::MaxDepth | |||
) | [inline] |
quiescenceSearch2.h の 75 行で定義されています。
参照先 osl::alt(), osl::search::QuiescenceSearch2< EvalT >::depth(), osl::search::QuiescenceSearch2< EvalT >::max_depth, osl::Move::player(), osl::search::SearchState2Core::state(), osl::search::QuiescenceSearch2< EvalT >::state, と osl::search::FixedEval::winThreshold().
int osl::search::QuiescenceSearch2< EvalT >::search | ( | Player | P, | |
eval_t const & | ev, | |||
Move | last_move, | |||
int | depth = QSearchTraits::MaxDepth | |||
) | [inline] |
quiescenceSearch2.h の 85 行で定義されています。
参照先 osl::BLACK, と osl::search::QuiescenceSearch2< EvalT >::depth().
int osl::search::QuiescenceSearch2< EvalT >::searchIteratively | ( | eval_t const & | ev, | |
Move | last_move, | |||
int | depth = QSearchTraits::MaxDepth | |||
) | [inline] |
int osl::search::QuiescenceSearch2< EvalT >::searchIteratively | ( | Player | P, | |
eval_t const & | ev, | |||
Move | last_move, | |||
int | depth = QSearchTraits::MaxDepth | |||
) | [inline] |
quiescenceSearch2.h の 103 行で定義されています。
参照先 osl::BLACK, と osl::search::QuiescenceSearch2< EvalT >::depth().
int osl::search::QuiescenceSearch2< EvalT >::searchIteratively | ( | int | alpha, | |
int | beta, | |||
eval_t const & | ev, | |||
Move | last_move, | |||
int | depth | |||
) | [inline] |
int osl::search::QuiescenceSearch2< EvalT >::search | ( | int | alpha, | |
int | beta, | |||
eval_t const & | ev, | |||
Move | last_move, | |||
int | depth = QSearchTraits::MaxDepth | |||
) | [inline] |
int osl::search::QuiescenceSearch2< EvalT >::search | ( | Player | P, | |
int | alpha, | |||
int | beta, | |||
eval_t const & | ev, | |||
Move | last_move, | |||
int | depth | |||
) | [inline] |
int osl::search::QuiescenceSearch2< EvalT >::searchProbCut | ( | int | alpha, | |
int | beta, | |||
eval_t const & | ev, | |||
Move | last_move | |||
) | [inline] |
quiescenceSearch2.tcc の 211 行で定義されています。
参照先 osl::alt(), osl::eval::betterThan(), osl::eval::max(), osl::search::QuiescenceSearch2< EvalT >::max_depth, osl::search::QSearchTraits::MaxDepth, osl::eval::min(), osl::newPtypeO(), osl::eval::notLessThan(), osl::PAWN, と osl::search::FixedEval::winThreshold().
int osl::search::QuiescenceSearch2< EvalT >::searchProbCut | ( | Player | P, | |
int | alpha, | |||
int | beta, | |||
eval_t const & | ev, | |||
Move | last_move | |||
) | [inline] |
int osl::search::QuiescenceSearch2< EvalT >::searchInternal | ( | int | alpha, | |
int | beta, | |||
eval_t const & | ev, | |||
Move | last_move, | |||
int | additional_depth = 0 | |||
) | [inline] |
quiescenceSearch2.tcc の 579 行で定義されています。
参照先 osl::search::SearchState2Core::abort(), allocate_depth_in_threatmate, osl::alt(), osl::eval::betterThan(), osl::search::ThreatmateState::CHECK_AFTER_THREATMATE, osl::search::SearchState2Core::currentHash(), osl::search::QuiescenceSearch2< EvalT >::depth(), osl::search::QuiescenceSearch2< EvalT >::depthFromRoot(), osl::search::QuiescenceLog::enter(), osl::search::SearchState2Core::hasLastRecord(), osl::search::SearchState2Core::initPV(), osl::Move::INVALID(), osl::search::SearchState2Core::lastRecord(), osl::search::SearchState2Core::makePV(), osl::search::QSearchTraits::MaxDepth, osl::search::QuiescenceLog::node(), osl::search::QuiescenceSearch2< EvalT >::node_count, osl::eval::notLessThan(), osl::Move::player(), osl::search::qallocate(), osl::search::SimpleHashRecord::qrecord, quiecence_assert, osl::search::QuiescenceRecord::setVisited(), osl::search::SearchState2Core::state(), osl::search::QuiescenceSearch2< EvalT >::state, osl::search::QuiescenceSearch2< EvalT >::table, osl::search::FixedEval::winByFoul(), と osl::search::FixedEval::winThreshold().
int osl::search::QuiescenceSearch2< EvalT >::searchMain | ( | QuiescenceRecord * | record, | |
int | alpha, | |||
int | beta, | |||
eval_t const & | ev, | |||
Move | last_move, | |||
int | additional_depth | |||
) | [inline, private] |
quiescenceSearch2.tcc の 740 行で定義されています。
参照先 osl::stat::Ratio::add(), osl::search::QuiescenceRecord::addKillerMoves(), osl::search::QuiescenceFlags::ADVANCE_BISHOP, osl::search::QSearch2PrivateTraits::AdvanceBishopDepthFromRoot, osl::search::QuiescenceFlags::ALL_ESCAPE, allocate_depth_in_threatmate, osl::alt(), osl::search::QuiescenceRecord::attack_oracle, osl::search::QSearch2PrivateTraits::AttackGoldSilverDepthFromRoot, osl::search::QSearch2PrivateTraits::AttackKing8DepthFromRoot, osl::search::QSearch2PrivateTraits::AttackKnightDepthFromRoot, osl::search::QSearch2PrivateTraits::AttackMajorPieceDepthFromRoot, osl::search::QSearch2PrivateTraits::AttackPinnedDepth, osl::search::QuiescenceRecord::bestMove(), osl::eval::betterThan(), osl::BISHOP, osl::search::QuiescenceFlags::BREAK_THREATMATE, osl::canPromote(), osl::ntesuki::capture(), osl::Move::capturePtype(), osl::search::QuiescenceFlags::CHECK, osl::search::QuiescenceRecord::checkmateNodesLeft(), osl::search::QSearchTraits::CheckmateSpecialDepth, osl::search::SearchState2Core::countCheckAfterThreatmate(), osl::search::SearchState2Core::countCheckAfterThreatmateSacrifice(), osl::search::SearchState2Core::curDepth(), osl::search::SearchState2Core::currentHash(), osl::eval::delta(), osl::search::QuiescenceSearch2< EvalT >::depth(), osl::search::SearchState2Core::depth_node_count_quiesce, osl::search::QuiescenceSearch2< EvalT >::depthFromRoot(), osl::search::QuiescenceFlags::DROP, osl::search::QSearch2PrivateTraits::DropDepthFromRoot, osl::Piece::EMPTY(), osl::search::QuiescenceFlags::ESCAPE_FROM_LAST_MOVE, osl::search::QSearch2PrivateTraits::EscapeDepthFromRoot, osl::search::QSearch2PrivateTraits::EscapeFromLastMoveDepthFromRoot, osl::find(), finish(), osl::Move::from(), osl::search::SearchState2Core::getBigramKillerMoves(), osl::search::QuiescenceFlags::GOLDSILVER_ATTACK, osl::search::SearchState2Core::hasLastRecord(), osl::search::QSearchTraits::HistorySpecialDepth, osl::Move::INVALID(), osl::Move::isDrop(), osl::isMajor(), osl::isMajorBasic(), osl::Move::isNormal(), osl::Move::isPass(), osl::Piece::isPiece(), osl::isPiece(), osl::Position::isPieceStand(), osl::search::DualThreatmateState::isThreatmate(), osl::search::SearchState2Core::isWinningState(), osl::search::SearchState2Core::isWinningStateShort(), osl::search::FixedEval::isWinValue(), osl::KING, osl::search::QuiescenceFlags::KING8_ATTACK, osl::search::QuiescenceRecord::king8Info(), osl::search::QuiescenceFlags::KING_ESCAPE, osl::search::QuiescenceFlags::KING_WALK, osl::KNIGHT, osl::search::QuiescenceFlags::KNIGHT_ATTACK, osl::search::QSearch2PrivateTraits::KnightCaptureDepth, osl::LANCE, osl::search::SearchState2Core::lastMove(), osl::search::SearchState2Core::lastRecord(), osl::checkmate::King8Info::liberty(), osl::search::QuiescenceRecord::loadMoves(), osl::search::QuiescenceRecord::lowerBound(), osl::search::QuiescenceRecord::lowerDepth(), osl::search::QuiescenceFlags::MAJOR_PIECE_ATTACK, osl::checkmate::King8Info::makeWithPin(), osl::eval::max(), osl::search::QuiescenceSearch2< EvalT >::max_depth, osl::search::DualThreatmateState::maybeThreatmate(), osl::search::DualThreatmateState::mayHaveCheckmate(), osl::eval::min(), moves, osl::search::QuiescenceRecord::moves_size(), osl::newPtypeO(), osl::search::QuiescenceSearch2< EvalT >::node_count, osl::eval::notLessThan(), osl::Piece::owner(), osl::search::QSearch2PrivateTraits::PawnCaptureDepth, osl::search::QuiescenceFlags::PINNED_ATTACK, osl::Piece::position(), osl::promote(), osl::search::QuiescenceFlags::PROMOTE, osl::Move::ptype(), osl::PTYPE_EMPTY, osl::search::qallocate(), osl::search::SimpleHashRecord::qrecord, ratio, osl::ROOK, osl::search::QuiescenceRecord::sendOffPosition(), osl::search::QuiescenceRecord::setLowerBound(), osl::search::QuiescenceRecord::setUpperBound(), osl::move_order::CaptureSort::sort(), osl::search::SearchState2Core::state(), osl::search::QuiescenceSearch2< EvalT >::state, osl::search::QuiescenceLog::staticValue(), osl::search::QuiescenceSearch2< EvalT >::table, osl::search::QuiescenceRecord::threatmate, osl::search::DualThreatmateState::threatmateMove(), osl::search::FixedEval::threatmatePenalty(), osl::Move::to(), osl::search::SearchState2Core::tryThreatmate(), osl::unpromote(), osl::search::QuiescenceRecord::upperBound(), osl::search::QuiescenceRecord::upperDepth(), osl::search::QuiescenceFlags::UTILIZE_PROMOTED, osl::search::QSearch2PrivateTraits::UtilizePromotedDepth, と osl::search::FixedEval::winByCheckmate().
void osl::search::QuiescenceSearch2< EvalT >::recordGeneration | ( | QuiescenceRecord * | record, | |
MOVE_TYPE | type, | |||
const MoveVector & | moves | |||
) | [inline, private] |
bool osl::search::QuiescenceSearch2< EvalT >::examineCapture | ( | QuiescenceRecord * | record, | |
int & | curVal, | |||
MoveVector & | working, | |||
int & | alpha, | |||
int | beta, | |||
eval_t const & | ev, | |||
Piece | last_piece, | |||
int | additional_depth | |||
) | [inline, private] |
PTYPE examineMoves Ƥ
quiescenceSearch2.tcc の 268 行で定義されています。
参照先 osl::Piece::position(), osl::search::SortCaptureMoves::sortByTakeBack(), osl::search::SearchState2Core::state(), と osl::search::QuiescenceSearch2< EvalT >::state.
int osl::search::QuiescenceSearch2< EvalT >::staticValue | ( | eval_t const & | ev, | |
int | alpha, | |||
int | beta, | |||
QuiescenceRecord * | record | |||
) | [inline, private] |
quiescenceSearch2.tcc の 472 行で定義されています。
参照先 allocate_depth_in_threatmate, osl::eval::betterThan(), osl::Move::capturePtype(), osl::search::ThreatmateState::CHECK_AFTER_THREATMATE, osl::search::QSearchTraits::CheckmateSpecialDepth, osl::search::SearchState2Core::currentHash(), osl::search::QuiescenceSearch2< EvalT >::depth(), osl::search::QuiescenceSearch2< EvalT >::depthFromRoot(), osl::search::QuiescenceRecordBase::EXACT, osl::GOLD, osl::checkmate::ImmediateCheckmate::hasCheckmateMove(), osl::search::SearchState2Core::hasLastRecord(), osl::search::QuiescenceRecord::hasStaticValue(), osl::Move::INVALID(), osl::Move::isNormal(), osl::search::SearchState2Core::isThreatmateState(), osl::search::SearchState2Core::isThreatmateStateShort(), osl::Move::isValid(), osl::search::SearchState2Core::lastMove(), osl::search::SearchState2Core::lastRecord(), osl::search::DualThreatmateState::maybeThreatmate(), osl::PROOK, osl::Move::ptype(), osl::search::qallocate(), osl::search::QuiescenceRecord::setStaticValue(), osl::search::DualThreatmateState::setThreatmate(), osl::SILVER, osl::search::SearchState2Core::state(), osl::search::QuiescenceSearch2< EvalT >::state, osl::search::QuiescenceRecord::staticValue(), osl::search::QuiescenceRecord::staticValueDepth(), osl::search::QuiescenceRecord::staticValueType(), osl::search::ThreatmateState::status(), osl::search::DualThreatmateState::status(), osl::search::QuiescenceSearch2< EvalT >::table, osl::search::SimpleHashRecord::threatmate(), osl::search::QuiescenceRecord::threatmate, osl::search::QuiescenceRecord::threatmate_oracle, osl::search::QSearch2PrivateTraits::ThreatMateDepthFromRoot, osl::search::QuiescenceRecord::threatmateNodesLeft(), osl::search::FixedEval::threatmatePenalty(), osl::Move::to(), osl::search::SearchState2Core::tryThreatmate(), osl::search::QuiescenceRecordBase::UPPER_BOUND, osl::Position::x(), と osl::Position::y().
int osl::search::QuiescenceSearch2< EvalT >::passValue | ( | int | alpha, | |
int | beta, | |||
eval_t const & | ev | |||
) | [inline, private] |
quiescenceSearch2.tcc の 719 行で定義されています。
参照先 osl::BOOST_STATIC_ASSERT(), osl::search::SearchState2Core::currentHash(), osl::search::SearchState2Core::doUndoMoveOrPass(), osl::search::QSearch2PrivateTraits::EscapeDepthFromRoot, osl::search::QuiescenceSearch2< EvalT >::max_depth, osl::Move::PASS(), osl::search::QSearch2PrivateTraits::PassExtraDepth, と osl::search::QuiescenceSearch2< EvalT >::state.
int osl::search::QuiescenceSearch2< EvalT >::currentValueWithLastThreat | ( | eval_t const & | ev, | |
Piece | last_move_piece | |||
) | [inline, private] |
quiescenceSearch2.tcc の 676 行で定義されています。
参照先 osl::alt(), osl::eval::betterThan(), osl::search::QuiescenceSearch2< EvalT >::depthFromRoot(), osl::search::QSearch2PrivateTraits::EscapeFromLastMoveDepthFromRoot, osl::Piece::isPiece(), osl::KING, osl::Piece::owner(), osl::Piece::position(), osl::Piece::ptypeO(), osl::search::QSearchTraits::SecondThreat, osl::search::SearchState2Core::state(), と osl::search::QuiescenceSearch2< EvalT >::state.
参照元 osl::search::QuiescenceSearch2< EvalT >::takeBackValue().
bool osl::search::QuiescenceSearch2< EvalT >::examineMoves | ( | QuiescenceRecord * | record, | |
int & | curVal, | |||
const Move * | first, | |||
const Move * | last, | |||
int & | alpha, | |||
int | beta, | |||
eval_t const & | ev, | |||
int | additional_depth, | |||
Position | dont_capture = Position::STAND() | |||
) | [inline] |
dont_capture | TakeBack ǻ夫ʣƻʤ˻Ȥ. template parameter has_dont_capture true λ |
quiescenceSearch2.tcc の 319 行で定義されています。
参照先 osl::search::SearchState2Core::abort(), osl::alt(), osl::search::QuiescenceRecord::bestMove(), osl::eval::betterThan(), osl::Move::capturePtype(), osl::search::QSearchTraits::CHECK, osl::search::QSearchTraits::CheckmateSpecialDepth, osl::search::SearchState2Core::currentHash(), osl::eval::delta(), osl::search::QuiescenceSearch2< EvalT >::depth(), osl::search::QuiescenceSearch2< EvalT >::depthFromRoot(), osl::search::SearchState2Core::doUndoMoveOrPass(), osl::search::FixedEval::drawValue(), osl::PtypeTable::hasUnblockableEffect(), osl::Sennichite::hasWinner(), osl::RepetitionCounter::isAlmostSennichite(), osl::Sennichite::isDraw(), osl::isMajor(), osl::Move::isNormal(), osl::Sennichite::isNormal(), osl::Move::isPass(), osl::search::FixedEval::isWinValue(), osl::search::QSearchTraits::KING_ESCAPE, osl::search::QuiescenceRecord::lowerBound(), osl::search::QuiescenceRecord::lowerDepth(), osl::search::QSearchTraits::MaxDepth, osl::eval::notLessThan(), osl::Move::ptype(), osl::PTYPE_EMPTY, osl::Ptype_Table, osl::Move::ptypeO(), osl::search::QuiescenceLog::pushMove(), osl::search::SearchState2Core::repetitionCounter(), osl::search::SearchState2Core::setKillerMove(), osl::search::QuiescenceRecord::setLowerBound(), osl::search::SearchState2Core::state(), osl::search::QuiescenceSearch2< EvalT >::state, osl::Move::to(), osl::search::QSearchTraits::UNKNOWN, osl::search::FixedEval::winByFoul(), と osl::Sennichite::winner().
int osl::search::QuiescenceSearch2< EvalT >::takeBackValue | ( | int | alpha, | |
int | beta, | |||
eval_t const & | ev, | |||
Move | last_move | |||
) | [inline] |
ñʼ֤õ.
PieceEval::computeDiffAfterMoveForRP Ȱۤʤꡤ̤ư ΤȽꤷӤ
attack_piece | last_move λ˲Ƥ |
quiescenceSearch2.tcc の 1704 行で定義されています。
参照先 osl::alt(), osl::eval::betterThan(), osl::ntesuki::capture(), osl::search::QuiescenceSearch2< EvalT >::currentValueWithLastThreat(), osl::eval::delta(), osl::Piece::EMPTY(), osl::Move::isPass(), osl::LANCE, moves, osl::search::QuiescenceSearch2< EvalT >::node_count, osl::eval::notLessThan(), osl::Piece::position(), osl::Piece::ptype(), osl::search::SortCaptureMoves::sortByMovingPiece(), osl::search::SearchState2Core::state(), osl::search::QuiescenceSearch2< EvalT >::state, osl::Move::to(), osl::search::FixedEval::winByCheckmate(), と osl::search::FixedEval::winByFoul().
bool osl::search::QuiescenceSearch2< EvalT >::examineTakeBack | ( | const MoveVector & | moves, | |
int & | cur_val, | |||
int & | alpha, | |||
int | beta, | |||
eval_t const & | ev | |||
) | [inline] |
quiescenceSearch2.tcc の 1443 行で定義されています。
参照先 osl::alt(), osl::eval::betterThan(), osl::eval::delta(), osl::search::QuiescenceSearch2< EvalT >::depth(), osl::search::SearchState2Core::doUndoMoveLight(), osl::importantMove(), osl::search::FixedEval::isWinValue(), osl::eval::max(), osl::eval::notLessThan(), osl::search::QuiescenceLog::pushMove(), osl::search::SearchState2Core::state(), と osl::search::QuiescenceSearch2< EvalT >::state.
bool osl::search::QuiescenceSearch2< EvalT >::examineTakeBack2 | ( | const MoveVector & | moves, | |
QuiescenceThreat & | threat2, | |||
QuiescenceThreat & | threat1, | |||
int | beta, | |||
int | beta2, | |||
eval_t const & | ev | |||
) | [inline] |
üμ֤.
threat
threat1 | ζ | |
threat2 | 2ܤζ | |
calm_move_only | ޥˤϤʤ | |
king_attack_piece | P ˲Ƥ(Τΰ) |
quiescenceSearch2.tcc の 1488 行で定義されています。
参照先 osl::alt(), osl::eval::betterThan(), osl::BISHOP, osl::eval::delta(), osl::search::QuiescenceSearch2< EvalT >::depth(), osl::search::QuiescenceSearch2< EvalT >::depthFromRoot(), osl::search::SearchState2Core::doUndoMoveLight(), osl::search::QSearch2PrivateTraits::EscapeDepthFromRoot, osl::search::QSearch2PrivateTraits::EscapeFromLastMoveDepthFromRoot, finish(), osl::PtypeTable::getEffect(), osl::EffectContent::hasEffect(), osl::importantMove(), osl::isMajor(), osl::Move::isNormal(), osl::Move::isPass(), osl::search::FixedEval::isWinValue(), osl::search::SearchState2Core::lastMove(), osl::eval::notLessThan(), osl::search::SearchState2Core::popPass(), osl::Ptype_Table, osl::Move::ptypeO(), osl::search::QuiescenceLog::pushMove(), osl::search::SearchState2Core::pushPass(), osl::ROOK, osl::search::SearchState2Core::state(), osl::search::QuiescenceSearch2< EvalT >::state, target, osl::Move::to(), osl::unpromote(), と osl::search::QuiescenceThreat::value.
bool osl::search::QuiescenceSearch2< EvalT >::generateAndExamineTakeBack2 | ( | MoveVector & | moves, | |
QuiescenceThreat & | threat2, | |||
QuiescenceThreat & | threat1, | |||
int | beta1, | |||
int | beta2, | |||
eval_t const & | ev | |||
) | [inline] |
üμ֤.
Ƽ˻ؼ examineTakeBack2 Ƥ
quiescenceSearch2.tcc の 237 行で定義されています。
参照先 osl::ntesuki::capture(), osl::search::QuiescenceSearch2< EvalT >::currentState(), osl::Piece::isOnBoardByOwner(), osl::Piece::position(), osl::search::SortCaptureMoves::sortByMovingPiece(), osl::search::SearchState2Core::state(), osl::search::QuiescenceSearch2< EvalT >::state, と target.
int osl::search::QuiescenceSearch2< EvalT >::takeBackOrChase | ( | int | alpha, | |
int | beta, | |||
eval_t const & | ev, | |||
Move | last_move | |||
) | [inline] |
last_move ƨǡƨμ֤ޤɷβͤȽ
quiescenceSearch2.tcc の 1665 行で定義されています。
参照先 osl::alt(), osl::eval::betterThan(), osl::ntesuki::capture(), osl::search::SearchState2Core::doUndoMoveLight(), osl::Move::from(), osl::Move::isNormal(), osl::eval::max(), moves, osl::newPtypeO(), osl::PROOK, osl::Move::ptypeO(), osl::ROOK, osl::search::SortCaptureMoves::sortByMovingPiece(), osl::search::SearchState2Core::state(), osl::search::QuiescenceSearch2< EvalT >::state, と osl::Move::to().
int osl::search::QuiescenceSearch2< EvalT >::staticValueWithThreat | ( | eval_t const & | ev, | |
int | alpha, | |||
QuiescenceThreat & | threat1, | |||
QuiescenceThreat & | threat2 | |||
) | [inline] |
quiescenceSearch2.tcc の 1764 行で定義されています。
参照先 osl::alt(), osl::search::QSearch2PrivateTraits::AttackGoldSilverDepthFromRoot, osl::search::QSearch2PrivateTraits::AttackKnightDepthFromRoot, osl::eval::betterThan(), osl::eval::delta(), osl::search::QuiescenceSearch2< EvalT >::depth(), osl::search::QuiescenceSearch2< EvalT >::depthFromRoot(), osl::search::QSearch2PrivateTraits::EscapeDepthFromRoot, finish(), osl::search::QSearchTraits::FirstThreat, osl::isMajorBasic(), osl::Move::isNormal(), osl::search::QSearch2PrivateTraits::KnightCaptureDepth, osl::search::SearchState2Core::lastMove(), osl::eval::max(), osl::search::QuiescenceSearch2< EvalT >::max_depth, osl::eval::min(), osl::search::QuiescenceThreat::move, moves, osl::eval::notLessThan(), osl::Piece::owner(), osl::search::QSearch2PrivateTraits::PawnCaptureDepth, osl::search::SearchState2Core::popPass(), osl::Piece::position(), osl::Piece::ptype(), osl::search::SearchState2Core::pushPass(), osl::search::QSearchTraits::SecondThreat, osl::search::SearchState2Core::state(), osl::search::QuiescenceSearch2< EvalT >::state, target, osl::Move::to(), osl::search::QuiescenceThreat::value, と osl::search::FixedEval::winByCheckmate().
int osl::search::QuiescenceSearch2< EvalT >::staticValueWithThreat | ( | eval_t const & | ev | ) | [inline] |
int osl::search::QuiescenceSearch2< EvalT >::staticValueWithThreat | ( | eval_t const & | ev | ) | [inline] |
int osl::search::QuiescenceSearch2< EvalT >::nodeCount | ( | ) | const [inline] |
const NumEffectState& osl::search::QuiescenceSearch2< EvalT >::currentState | ( | ) | const [inline] |
SearchState2Core& osl::search::QuiescenceSearch2< EvalT >::state [private] |
quiescenceSearch2.h の 44 行で定義されています。
参照元 osl::search::QuiescenceSearch2< EvalT >::currentState(), osl::search::QuiescenceSearch2< EvalT >::currentValueWithLastThreat(), osl::search::QuiescenceSearch2< EvalT >::depthFromRoot(), osl::search::QuiescenceSearch2< EvalT >::examineCapture(), osl::search::QuiescenceSearch2< EvalT >::examineMoves(), osl::search::QuiescenceSearch2< EvalT >::examineTakeBack(), osl::search::QuiescenceSearch2< EvalT >::examineTakeBack2(), osl::search::QuiescenceSearch2< EvalT >::generateAndExamineTakeBack2(), osl::search::QuiescenceSearch2< EvalT >::passValue(), osl::search::QuiescenceSearch2< EvalT >::recordGeneration(), osl::search::QuiescenceSearch2< EvalT >::search(), osl::search::QuiescenceSearch2< EvalT >::searchInternal(), osl::search::QuiescenceSearch2< EvalT >::searchIteratively(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), osl::search::QuiescenceSearch2< EvalT >::staticValue(), osl::search::QuiescenceSearch2< EvalT >::staticValueWithThreat(), osl::search::QuiescenceSearch2< EvalT >::takeBackOrChase(), と osl::search::QuiescenceSearch2< EvalT >::takeBackValue().
SimpleHashTable& osl::search::QuiescenceSearch2< EvalT >::table [private] |
int osl::search::QuiescenceSearch2< EvalT >::root_depth [private] |
int osl::search::QuiescenceSearch2< EvalT >::max_depth [private] |
quiescenceSearch2.h の 47 行で定義されています。
参照元 osl::search::QuiescenceSearch2< EvalT >::depth(), osl::search::QuiescenceSearch2< EvalT >::passValue(), osl::search::QuiescenceSearch2< EvalT >::search(), osl::search::QuiescenceSearch2< EvalT >::searchIteratively(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), osl::search::QuiescenceSearch2< EvalT >::searchProbCut(), と osl::search::QuiescenceSearch2< EvalT >::staticValueWithThreat().
int osl::search::QuiescenceSearch2< EvalT >::node_count [private] |