#include <quiescenceGenerator.h>
Static Public メソッド | |
template<Ptype PTYPE, bool has_dont_capture> | |
static void | capture (const NumEffectState &, MoveVector &moves, Piece dont_capture) |
P Ũ PTYPE 롥 | |
static void | captureAll (const NumEffectState &, MoveVector &moves) |
static void | captureAll (const NumEffectState &, MoveVector &moves, Piece dont_capture) |
static void | capture (const NumEffectState &, Position target, MoveVector &moves) |
P Ũ target 롥 | |
static void | promote (const NumEffectState &, PieceMask pins, MoveVector &moves) |
template<Ptype PTYPE> | |
static void | promote (const NumEffectState &, MoveVector &moves) |
static void | check (const NumEffectState &, PieceMask pins, MoveVector &moves, bool no_liberty=false) |
static void | check (const NumEffectState &, PieceMask pins, bool no_liberty, const Position8 &sendoffs, MoveVector &moves) |
static void | escapeKing (const NumEffectState &state, MoveVector &moves) |
static bool | escapeKingInTakeBack (const NumEffectState &state, MoveVector &moves, bool check_by_lance) |
static void | dropMajorPiece (const NumEffectState &state, MoveVector &moves) |
static void | attackMajorPiece (const NumEffectState &state, PieceMask pins, MoveVector &moves) |
static void | escapeAll (const NumEffectState &state, MoveVector &moves) |
static void | escapeNormalPiece (const NumEffectState &state, Piece escape, MoveVector &moves, bool add_support_only=false) |
static void | escapeFromLastMove (const NumEffectState &state, Move last_move, MoveVector &moves) |
ľ˻ؼ꤫ƨ | |
static void | escapeFromLastMoveOtherThanPawn (const NumEffectState &state, Move last_move, MoveVector &moves) |
static bool | escapeByMoveOnly (const NumEffectState &state, Piece piece, MoveVector &moves) |
static void | attackGoldWithPawn (const NumEffectState &state, PieceMask pins, MoveVector &moves) |
static void | attackWithKnight (const NumEffectState &state, PieceMask pins, Position attack_from, bool has_knight, MoveVector &moves) |
static void | attackSilverWithPawn (const NumEffectState &state, PieceMask pins, MoveVector &moves) |
static void | attackKnightWithPawn (const NumEffectState &state, PieceMask pins, MoveVector &moves) |
static void | advanceBishop (const NumEffectState &state, MoveVector &moves) |
Ѥ˿ʤ. | |
template<Direction DIR> | |
static void | advanceBishop (const NumEffectState &state, const Position from, MoveVector &moves) |
static void | attackKing8 (const NumEffectState &state, PieceMask pins, MoveVector &moves) |
static void | attackToPinned (const NumEffectState &state, PieceMask pins, MoveVector &moves) |
static void | utilizePromoted (const NumEffectState &state, Piece target, MoveVector &moves) |
static void | breakThreatmate (const NumEffectState &state, Move threatmate, PieceMask pins, MoveVector &moves) |
static void | kingWalk (const NumEffectState &state, MoveVector &moves) |
Static Private メソッド | |
static void | attackMajorPieceSecondSelection (bool target_has_support, const MoveVector &src, MoveVector &out) |
static void | attackMajorPieceFirstSelection (const NumEffectState &state, PieceMask pins, const MoveVector &all_moves, MoveVector &moves, MoveVector &expensive_drops) |
static void | attackMajorPieceZerothSelection (const NumEffectState &state, const MoveVector &src, Position target, MoveVector &open_out, MoveVector &out) |
構成 | |
struct | CaptureGenerator |
struct | CaptureGeneratorWithCheck |
quiescenceGenerator.h の 27 行で定義されています。
template void osl::search::QuiescenceGenerator< P >::capture< ROOK, false > | ( | const NumEffectState & | , | |
MoveVector & | moves, | |||
Piece | dont_capture | |||
) | [inline, static] |
P Ũ PTYPE 롥
dont_capture | Ͻ |
quiescenceGenerator.tcc の 47 行で定義されています。
参照先 osl::BISHOP, osl::Piece::isPiece(), osl::KNIGHT, osl::LANCE, osl::PAWN, と osl::Piece::ptype().
void osl::search::QuiescenceGenerator< P >::captureAll | ( | const NumEffectState & | state, | |
MoveVector & | moves | |||
) | [inline, static] |
void osl::search::QuiescenceGenerator< P >::captureAll | ( | const NumEffectState & | state, | |
MoveVector & | moves, | |||
Piece | dont_capture | |||
) | [inline, static] |
quiescenceGenerator.tcc の 32 行で定義されています。
void osl::search::QuiescenceGenerator< P >::capture | ( | const NumEffectState & | state, | |
Position | target, | |||
MoveVector & | moves | |||
) | [inline, static] |
void osl::search::QuiescenceGenerator< P >::promote | ( | const NumEffectState & | state, | |
PieceMask | pins, | |||
MoveVector & | moves | |||
) | [inline, static] |
void osl::search::QuiescenceGenerator< P >::promote | ( | const NumEffectState & | state, | |
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.h の 175 行で定義されています。
void osl::search::QuiescenceGenerator< P >::check | ( | const NumEffectState & | state, | |
PieceMask | pins, | |||
MoveVector & | moves, | |||
bool | no_liberty = false | |||
) | [inline, static] |
void osl::search::QuiescenceGenerator< P >::check | ( | const NumEffectState & | state, | |
PieceMask | pins, | |||
bool | no_liberty, | |||
const Position8 & | sendoffs, | |||
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.tcc の 563 行で定義されています。
参照先 all_moves, osl::alt(), osl::BISHOP, osl::Position::canPromote(), osl::captured(), osl::container::Position8::isMember(), osl::KNIGHT, osl::LANCE, osl::newPtypeO(), osl::PAWN, osl::PTYPE_EMPTY, osl::eval::Ptype_Eval_Table, osl::Piece::ptypeO(), osl::ROOK, osl::unpromote(), と osl::eval::PtypeEvalTraits< KNIGHT >::val.
void osl::search::QuiescenceGenerator< P >::escapeKing | ( | const NumEffectState & | state, | |
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.tcc の 1338 行で定義されています。
参照先 all_moves, osl::alt(), osl::KING, osl::PAWN, と osl::PTYPE_EMPTY.
bool osl::search::QuiescenceGenerator< P >::escapeKingInTakeBack | ( | const NumEffectState & | state, | |
MoveVector & | moves, | |||
bool | check_by_lance | |||
) | [inline, static] |
quiescenceGenerator.tcc の 1376 行で定義されています。
参照先 all_moves, osl::alt(), osl::KING, osl::PTYPE_EMPTY, と osl::Position::STAND().
void osl::search::QuiescenceGenerator< P >::dropMajorPiece | ( | const NumEffectState & | state, | |
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.tcc の 1526 行で定義されています。
void osl::search::QuiescenceGenerator< P >::attackMajorPiece | ( | const NumEffectState & | state, | |
PieceMask | pins, | |||
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.tcc の 203 行で定義されています。
参照先 osl::alt(), osl::search::QuiescenceGenerator< P >::attackMajorPieceFirstSelection(), osl::search::QuiescenceGenerator< P >::attackMajorPieceSecondSelection(), osl::search::QuiescenceGenerator< P >::attackMajorPieceZerothSelection(), osl::Board_Table, osl::Piece::EMPTY(), osl::PtypeTraits< BISHOP >::indexLimit, osl::PtypeTraits< BISHOP >::indexMin, osl::PtypeTraits< ROOK >::indexMin, osl::isMajor(), osl::Piece::isOnBoardByOwner(), osl::BoardTable::nextPosition(), osl::Piece::position(), osl::Piece::ptype(), osl::ROOK, target, と osl::U.
void osl::search::QuiescenceGenerator< P >::escapeAll | ( | const NumEffectState & | state, | |
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.tcc の 383 行で定義されています。
参照先 osl::search::QuiescenceGenerator< P >::escapeNormalPiece(), finish(), osl::PtypeTraits< PAWN >::indexMin, osl::PtypeTraits< LANCE >::indexMin, osl::PtypeTraits< KNIGHT >::indexMin, osl::PtypeTraits< SILVER >::indexMin, osl::PtypeTraits< GOLD >::indexMin, osl::PtypeTraits< BISHOP >::indexMin, osl::PtypeTraits< ROOK >::indexMin, osl::Piece::isOnBoardByOwner(), osl::PKNIGHT, osl::Piece::position(), と osl::Piece::ptype().
void osl::search::QuiescenceGenerator< P >::escapeNormalPiece | ( | const NumEffectState & | state, | |
Piece | escape, | |||
MoveVector & | moves, | |||
bool | add_support_only = false | |||
) | [inline, static] |
escape | KINGʳζ |
quiescenceGenerator.tcc の 256 行で定義されています。
参照先 all_moves, osl::alt(), osl::BISHOP, osl::Board_Table, osl::BoardTable::getShortOffset(), osl::KING, osl::LANCE, osl::PAWN, osl::Piece::position(), osl::Piece::ptype(), osl::PTYPE_EMPTY, osl::eval::Ptype_Eval_Table, osl::unpromote(), osl::eval::PtypeEvalTraits< KNIGHT >::val, と osl::eval::PtypeEvalTraits< BISHOP >::val.
参照元 osl::search::QuiescenceGenerator< P >::escapeAll(), と osl::search::QuiescenceGenerator< P >::escapeFromLastMoveOtherThanPawn().
void osl::search::QuiescenceGenerator< P >::escapeFromLastMove | ( | const NumEffectState & | state, | |
Move | last_move, | |||
MoveVector & | moves | |||
) | [inline, static] |
ľ˻ؼ꤫ƨ
quiescenceGenerator.tcc の 1470 行で定義されています。
参照先 all_moves, osl::alt(), osl::Board_Table, osl::search::QuiescenceGenerator< P >::escapeFromLastMoveOtherThanPawn(), osl::Move::isNormal(), osl::Piece::isOnBoardByOwner(), osl::BoardTable::nextPosition(), osl::PAWN, osl::Move::ptype(), osl::PTYPE_EMPTY, target, osl::Move::to(), と osl::U.
void osl::search::QuiescenceGenerator< P >::escapeFromLastMoveOtherThanPawn | ( | const NumEffectState & | state, | |
Move | last_move, | |||
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.tcc の 476 行で定義されています。
参照先 osl::search::QuiescenceGenerator< P >::escapeNormalPiece(), osl::Move::isNormal(), osl::KING, osl::KNIGHT, osl::PAWN, osl::Move::ptype(), osl::eval::Ptype_Eval_Table, osl::Move::ptypeO(), と osl::Move::to().
参照元 osl::search::QuiescenceGenerator< P >::escapeFromLastMove().
bool osl::search::QuiescenceGenerator< P >::escapeByMoveOnly | ( | const NumEffectState & | state, | |
Piece | piece, | |||
MoveVector & | moves | |||
) | [inline, static] |
void osl::search::QuiescenceGenerator< P >::attackGoldWithPawn | ( | const NumEffectState & | state, | |
PieceMask | pins, | |||
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.tcc の 1022 行で定義されています。
参照先 osl::alt(), osl::search::QuiescenceGenerator< P >::attackWithKnight(), osl::BISHOP, osl::Board_Table, osl::Position::canPromote(), osl::D, osl::DL, osl::DR, osl::PtypeTraits< GOLD >::indexMin, osl::Piece::isOnBoardByOwner(), osl::move_generator::isPawnMaskSet(), osl::KNIGHT, osl::LANCE, osl::BoardTable::nextPosition(), osl::Piece::owner(), osl::PAWN, osl::Piece::position(), osl::Piece::ptype(), osl::PTYPE_EMPTY, osl::SILVER, と osl::Position::x().
void osl::search::QuiescenceGenerator< P >::attackWithKnight | ( | const NumEffectState & | state, | |
PieceMask | pins, | |||
Position | attack_from, | |||
bool | has_knight, | |||
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.tcc の 1113 行で定義されています。
参照先 osl::alt(), osl::BISHOP, osl::Board_Table, osl::BOOST_STATIC_ASSERT(), osl::Piece::EMPTY(), osl::GOLD, osl::PtypeTraits< KNIGHT >::indexLimit, osl::Piece::isOnBoardByOwner(), osl::Piece::isPromoted(), osl::KNIGHT, osl::BoardTable::nextPosition(), osl::Piece::position(), osl::Piece::ptype(), osl::PTYPE_EMPTY, と osl::U.
参照元 osl::search::QuiescenceGenerator< P >::attackGoldWithPawn(), と osl::search::QuiescenceGenerator< P >::attackSilverWithPawn().
void osl::search::QuiescenceGenerator< P >::attackSilverWithPawn | ( | const NumEffectState & | state, | |
PieceMask | pins, | |||
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.tcc の 1220 行で定義されています。
参照先 osl::alt(), osl::search::QuiescenceGenerator< P >::attackWithKnight(), osl::BISHOP, osl::Board_Table, osl::Position::canPromote(), osl::D, osl::DL, osl::DR, osl::hasEffect(), osl::PtypeTraits< SILVER >::indexMin, osl::Piece::isOnBoardByOwner(), osl::KNIGHT, osl::LANCE, osl::BoardTable::nextPosition(), osl::Piece::owner(), osl::PAWN, osl::Piece::position(), osl::Piece::ptype(), osl::PTYPE_EMPTY, osl::Piece::ptypeO(), osl::SILVER, と osl::Position::x().
void osl::search::QuiescenceGenerator< P >::attackKnightWithPawn | ( | const NumEffectState & | state, | |
PieceMask | pins, | |||
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.tcc の 1178 行で定義されています。
参照先 osl::alt(), osl::Board_Table, osl::Position::canPromote(), osl::D, osl::PtypeTraits< KNIGHT >::indexMin, osl::Piece::isOnBoard(), osl::KNIGHT, osl::BoardTable::nextPosition(), osl::Piece::owner(), osl::PAWN, osl::Piece::position(), osl::Piece::ptype(), osl::PTYPE_EMPTY, と osl::Position::x().
void osl::search::QuiescenceGenerator< P >::advanceBishop | ( | const NumEffectState & | state, | |
MoveVector & | moves | |||
) | [inline, static] |
Ѥ˿ʤ.
ˤɤȴɤ
quiescenceGenerator.tcc の 1429 行で定義されています。
参照先 osl::BISHOP, osl::PtypeTraits< BISHOP >::indexMin, osl::Piece::isOnBoardByOwner(), osl::Piece::position(), と osl::Piece::ptype().
void osl::search::QuiescenceGenerator< P >::advanceBishop | ( | const NumEffectState & | state, | |
const Position | from, | |||
MoveVector & | moves | |||
) | [inline, static] |
void osl::search::QuiescenceGenerator< P >::attackKing8 | ( | const NumEffectState & | state, | |
PieceMask | pins, | |||
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.tcc の 716 行で定義されています。
参照先 all_moves, osl::alt(), osl::BLACK, osl::Board_Table, osl::captured(), osl::PtypeTable::getMoveMask(), osl::isMajor(), osl::Neighboring8::isNeighboring8(), osl::isPromoted(), osl::LANCE, osl::PtypeTraits< GOLD >::moveMask, osl::BoardTable::nextPosition(), osl::PAWN, osl::Position::positionForBlack(), osl::PTYPE_EMPTY, osl::Ptype_Table, osl::U, osl::WHITE, osl::Position::x(), と osl::Position::y().
void osl::search::QuiescenceGenerator< P >::attackToPinned | ( | const NumEffectState & | state, | |
PieceMask | pins, | |||
MoveVector & | moves | |||
) | [inline, static] |
void osl::search::QuiescenceGenerator< P >::utilizePromoted | ( | const NumEffectState & | state, | |
Piece | target, | |||
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.tcc の 873 行で定義されています。
参照先 all_moves, osl::BISHOP, osl::Piece::isPromoted(), osl::PAWN, osl::Piece::position(), osl::Piece::ptype(), osl::PTYPE_EMPTY, と osl::ROOK.
void osl::search::QuiescenceGenerator< P >::breakThreatmate | ( | const NumEffectState & | state, | |
Move | threatmate, | |||
PieceMask | pins, | |||
MoveVector & | moves | |||
) | [inline, static] |
quiescenceGenerator.tcc の 924 行で定義されています。
参照先 all_moves, osl::alt(), osl::Board_Table, osl::captured(), osl::DR, osl::GOLD, osl::Move::isDrop(), osl::isMajor(), osl::Move::isNormal(), osl::Piece::isPiece(), osl::KING, osl::BoardTable::nextPosition(), osl::Piece::owner(), osl::Piece::position(), osl::PTYPE_EMPTY, osl::eval::Ptype_Eval_Table, osl::SILVER, target, osl::Move::to(), osl::UL, osl::eval::PtypeEvalTraits< KNIGHT >::val, と osl::Position::x().
void osl::search::QuiescenceGenerator< P >::kingWalk | ( | const NumEffectState & | state, | |
MoveVector & | moves | |||
) | [inline, static] |
void osl::search::QuiescenceGenerator< P >::attackMajorPieceSecondSelection | ( | bool | target_has_support, | |
const MoveVector & | src, | |||
MoveVector & | out | |||
) | [inline, static, private] |
void osl::search::QuiescenceGenerator< P >::attackMajorPieceFirstSelection | ( | const NumEffectState & | state, | |
PieceMask | pins, | |||
const MoveVector & | all_moves, | |||
MoveVector & | moves, | |||
MoveVector & | expensive_drops | |||
) | [inline, static, private] |
quiescenceGenerator.tcc の 85 行で定義されています。
参照先 osl::alt(), osl::BISHOP, osl::Position::canPromote(), osl::newPtypeO(), osl::PAWN, osl::eval::Ptype_Eval_Table, osl::Piece::ptypeO(), osl::ROOK, osl::unpromote(), osl::eval::PtypeEvalTraits< KNIGHT >::val, と osl::eval::PtypeEvalTraits< BISHOP >::val.
参照元 osl::search::QuiescenceGenerator< P >::attackMajorPiece().
void osl::search::QuiescenceGenerator< P >::attackMajorPieceZerothSelection | ( | const NumEffectState & | state, | |
const MoveVector & | src, | |||
Position | target, | |||
MoveVector & | open_out, | |||
MoveVector & | out | |||
) | [inline, static, private] |
quiescenceGenerator.tcc の 167 行で定義されています。
参照先 osl::BISHOP, osl::LANCE, osl::PTYPE_EMPTY, と osl::ROOK.
参照元 osl::search::QuiescenceGenerator< P >::attackMajorPiece().