#include <immediateCheckmate.h>
Static Public メソッド | |
template<Player P, bool setBestMove> | |
static bool | slowHasCheckmateMoveDirPiece (NumEffectState const &state, Position target, King8Info mask, Direction d, Position pos, Piece p, Ptype ptype, Move &bestMove) |
template<Player P, bool setBestMove> | |
static bool | hasCheckmateMoveDirPiece (NumEffectState const &state, Position target, King8Info mask, Direction d, Position pos, Piece p, Move &bestMove) |
template<Player P, bool setBestMove> | |
static bool | hasCheckmateMoveDir (NumEffectState const &state, Position target, King8Info mask, Direction d, Move &bestMove) |
template<Player P, bool setBestMove> | |
static bool | hasCheckmateMove (NumEffectState const &state, Position 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, Position 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, Position target, King8Info mask, Move &bestMove) |
immediateCheckmate.h の 13 行で定義されています。
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | Player | pl, | |
NumEffectState const & | state, | |||
Move & | bestMove | |||
) | [static] |
immediateCheckmate.cc の 44 行で定義されています。
参照先 osl::BLACK.
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | Player | pl, | |
NumEffectState const & | state | |||
) | [static] |
immediateCheckmate.cc の 35 行で定義されています。
参照先 osl::BLACK.
template bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove< WHITE > | ( | NumEffectState const & | state, | |
King8Info | canMoveMask, | |||
Position | king, | |||
Move & | bestMove | |||
) | [inline, static] |
immediateCheckmate.tcc の 421 行で定義されています。
template bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove< WHITE > | ( | NumEffectState const & | state, | |
Move & | bestMove | |||
) | [inline, static] |
一手詰めがある局面かどうか判定(move).
手番の側に王手がかかっている場合は除く 長い利きによる王手は生成しない. pinされている駒の利きがないために詰みになる例も扱わない.
P(template) | - 攻撃側(手番側)のプレイヤー | |
state | - 局面 | |
best_move | - ある場合に詰めの手を返す |
immediateCheckmate.tcc の 434 行で定義されています。
参照先 target.
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | NumEffectState const & | state, | |
King8Info | canMoveMask | |||
) | [inline, static] |
immediateCheckmate.tcc の 396 行で定義されています。
参照先 osl::Position::isOnBoard(), と target.
template bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove< WHITE > | ( | NumEffectState const & | state | ) | [inline, static] |
一手詰めがある局面かどうか判定(move).
手番の側に王手がかかっている場合は除く 長い利きによる王手は生成しない. pinされている駒の利きがないために詰みになる例も扱わない.
P(template) | - 攻撃側(手番側)のプレイヤー | |
state | - 局面 |
immediateCheckmate.tcc の 410 行で定義されています。
参照先 osl::Position::isOnBoard(), と target.
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | NumEffectState const & | state, | |
Position | target, | |||
King8Info | mask, | |||
Move & | bestMove | |||
) | [inline, static] |
immediateCheckmate.tcc の 381 行で定義されています。
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDirPiece | ( | NumEffectState const & | state, | |
Position | target, | |||
King8Info | mask, | |||
Direction | d, | |||
Position | pos, | |||
Piece | p, | |||
Move & | bestMove | |||
) | [inline, static] |
immediateCheckmate.tcc の 326 行で定義されています。
参照先 osl::BLACK, osl::Board_Table, osl::Position::canPromote(), osl::canPromote(), osl::DIRECTION_INVALID_VALUE, osl::EMPTY_NUM, osl::BoardTable::getShort8Unsafe(), osl::checkmate::Immediate_Checkmate_Table, osl::inverse(), osl::isMajorBasic(), osl::checkmate::ImmediateCheckmateTable::noEffectMask(), osl::Piece::number(), osl::PAWN, osl::Piece::position(), osl::promote(), osl::Piece::ptype(), と osl::checkmate::King8Info::value.
bool osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece | ( | NumEffectState const & | state, | |
Position | target, | |||
King8Info | mask, | |||
Direction | d, | |||
Position | pos, | |||
Piece | p, | |||
Ptype | ptype, | |||
Move & | bestMove | |||
) | [inline, static] |
immediateCheckmate.tcc の 212 行で定義されています。
参照先 osl::Board_Table, osl::BoardTable::getOffset(), osl::checkmate::Immediate_Checkmate_Table, osl::BoardTable::isBetween(), osl::Piece::isEmpty(), osl::checkmate::ImmediateCheckmateTable::noEffectMask(), osl::Piece::number(), osl::Position::position, osl::Piece::position(), osl::PROOK, osl::Piece::ptype(), osl::checkmate::King8Info::value, osl::Position::x(), と osl::Position::y().