#include <immediateCheckmate.h>
Static Public メソッド | |
template<Player P, bool setBestMove> | |
static bool | slowHasCheckmateMoveDirPiece (NumEffectState const &state, Square target, King8Info mask, Direction d, Square pos, Piece p, Ptype ptype, Move &bestMove) |
template<Player P, bool setBestMove> | |
static bool | hasCheckmateMoveDirPiece (NumEffectState const &state, Square target, King8Info mask, Direction d, Square pos, Piece p, Move &bestMove) |
template<Player P, bool setBestMove> | |
static bool | hasCheckmateMoveDir (NumEffectState const &state, Square target, King8Info mask, Direction d, Move &bestMove) |
template<Player P, bool setBestMove> | |
static bool | hasCheckmateMove (NumEffectState const &state, Square target, King8Info mask, Move &bestMove) |
template<Player P> | |
static bool | hasCheckmateMove (NumEffectState const &state) |
一手詰めがある局面かどうか判定(move). | |
template<Player P> | |
static bool | hasCheckmateMove (NumEffectState const &state, King8Info) |
template<Player P> | |
static bool | hasCheckmateMove (NumEffectState const &state, Move &bestMove) |
一手詰めがある局面かどうか判定(move). | |
template<Player P> | |
static bool | hasCheckmateMove (NumEffectState const &state, King8Info canMoveMask, Square king, Move &bestMove) |
static bool | hasCheckmateMove (Player pl, NumEffectState const &state) |
static bool | hasCheckmateMove (Player pl, NumEffectState const &state, Move &bestMove) |
Static Private メソッド | |
template<Player P, bool setBestMove> | |
static bool | hasCheckmateDrop (NumEffectState const &state, Square target, King8Info mask, Move &bestMove) |
immediateCheckmate.h の 11 行で定義されています。
bool osl::checkmate::ImmediateCheckmate::hasCheckmateDrop | ( | NumEffectState const & | state, | |
Square | target, | |||
King8Info | mask, | |||
Move & | bestMove | |||
) | [static, private] |
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | Player | pl, | |
NumEffectState const & | state, | |||
Move & | bestMove | |||
) | [static] |
immediateCheckmate.cc の 43 行で定義されています。
参照先 osl::BLACK.
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | NumEffectState const & | state, | |
Square | target, | |||
King8Info | mask, | |||
Move & | bestMove | |||
) | [static] |
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | NumEffectState const & | state, | |
Move & | bestMove | |||
) | [static] |
一手詰めがある局面かどうか判定(move).
手番の側に王手がかかっている場合は除く 長い利きによる王手は生成しない. pinされている駒の利きがないために詰みになる例も扱わない.
P(template) | - 攻撃側(手番側)のプレイヤー | |
state | - 局面 | |
best_move | - ある場合に詰めの手を返す |
immediateCheckmate.tcc の 437 行で定義されています。
参照先 osl::alt(), osl::NumEffectState::Iking8Info(), と osl::SimpleState::kingSquare().
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | NumEffectState const & | state, | |
King8Info | canMoveMask, | |||
Square | king, | |||
Move & | bestMove | |||
) | [static] |
immediateCheckmate.tcc の 424 行で定義されています。
参照先 osl::NumEffectState::inCheck(), と osl::Square::isOnBoard().
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | NumEffectState const & | state, | |
King8Info | canMoveMask | |||
) | [static] |
immediateCheckmate.tcc の 397 行で定義されています。
参照先 osl::alt(), osl::Square::isOnBoard(), と osl::SimpleState::kingSquare().
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | Player | pl, | |
NumEffectState const & | state | |||
) | [static] |
immediateCheckmate.cc の 34 行で定義されています。
参照先 osl::BLACK.
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | NumEffectState const & | state | ) | [static] |
一手詰めがある局面かどうか判定(move).
手番の側に王手がかかっている場合は除く 長い利きによる王手は生成しない. pinされている駒の利きがないために詰みになる例も扱わない.
P(template) | - 攻撃側(手番側)のプレイヤー | |
state | - 局面 |
immediateCheckmate.tcc の 411 行で定義されています。
参照先 osl::alt(), osl::NumEffectState::Iking8Info(), osl::Square::isOnBoard(), と osl::SimpleState::kingSquare().
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDir | ( | NumEffectState const & | state, | |
Square | target, | |||
King8Info | mask, | |||
Direction | d, | |||
Move & | bestMove | |||
) | [static] |
immediateCheckmate.tcc の 360 行で定義されています。
参照先 osl::Board_Table, osl::NumEffectState::countEffect(), osl::NumEffectState::effectSetAt(), osl::PieceMask::getMask(), osl::BoardTable::getOffset(), osl::effect_util::AdditionalEffect::hasEffect(), osl::Square::isOnBoard(), osl::SimpleState::pieceOf(), osl::NumEffectState::piecesOnBoard(), と osl::PieceMask::reset().
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDirPiece | ( | NumEffectState const & | state, | |
Square | target, | |||
King8Info | mask, | |||
Direction | d, | |||
Square | pos, | |||
Piece | p, | |||
Move & | bestMove | |||
) | [static] |
immediateCheckmate.tcc の 327 行で定義されています。
参照先 osl::alt(), osl::BLACK, osl::Board_Table, osl::Square::canPromote(), osl::canPromote(), osl::DIRECTION_INVALID_VALUE, osl::EMPTY_NUM, osl::BoardTable::getShort8Unsafe(), osl::checkmate::Immediate_Checkmate_Table, osl::inverse(), osl::isMajorBasic(), osl::Piece::isOnBoardByOwner(), osl::NumEffectState::longEffectNumTable(), osl::checkmate::ImmediateCheckmateTable::noEffectMask(), osl::Piece::number(), osl::PAWN, osl::SimpleState::pieceOf(), osl::promote(), osl::Piece::ptype(), osl::Piece::square(), と osl::checkmate::King8Info::uint64Value().
bool osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece | ( | NumEffectState const & | state, | |
Square | target, | |||
King8Info | mask, | |||
Direction | d, | |||
Square | pos, | |||
Piece | p, | |||
Ptype | ptype, | |||
Move & | bestMove | |||
) | [static] |
immediateCheckmate.tcc の 213 行で定義されています。
参照先 osl::alt(), osl::Board_Table, osl::NumEffectState::effectSetAt(), osl::PieceMask::getMask(), osl::BoardTable::getOffset(), osl::NumEffectState::hasEffectByPiece(), osl::checkmate::Immediate_Checkmate_Table, osl::BoardTable::isBetween(), osl::Piece::isEmpty(), osl::checkmate::ImmediateCheckmateTable::noEffectMask(), osl::Piece::number(), osl::SimpleState::pieceAt(), osl::SimpleState::pieceOf(), osl::NumEffectState::piecesOnBoard(), osl::PROOK, osl::Piece::ptype(), osl::Piece::square(), osl::checkmate::King8Info::uint64Value(), osl::Square::x(), と osl::Square::y().