#include <immediateCheckmate.h>
Public Member Functions | |
template<osl::Player P, bool setBestMove> | |
bool | hasCheckmateDrop (NumEffectState const &state, Square target, King8Info canMoveMask, Move &bestMove) |
template<osl::Player P, bool setBestMove> | |
bool | slowHasCheckmateMoveDirPiece (NumEffectState const &state, Square target, King8Info canMoveMask, Direction d, Square pos, Piece p, Ptype ptype, Move &bestMove) |
template<osl::Player P, bool setBestMove> | |
bool | hasCheckmateMoveDirPiece (NumEffectState const &state, Square target, King8Info canMoveMask, Direction d, Square pos, Piece p, Move &bestMove) |
template<osl::Player P, bool setBestMove> | |
bool | hasCheckmateMoveDir (NumEffectState const &state, Square target, King8Info canMoveMask, Direction d, Move &bestMove) |
template<osl::Player P, bool setBestMove> | |
bool | hasCheckmateMove (NumEffectState const &state, Square target, King8Info canMoveMask, Move &bestMove) |
template<osl::Player P> | |
bool | hasCheckmateMove (NumEffectState const &state, King8Info canMoveMask) |
template<osl::Player P> | |
bool | hasCheckmateMove (NumEffectState const &state) |
template<osl::Player P> | |
bool | hasCheckmateMove (NumEffectState const &state, King8Info canMoveMask, Square target, Move &bestMove) |
template<osl::Player P> | |
bool | hasCheckmateMove (NumEffectState const &state, Move &bestMove) |
Static Public Member Functions | |
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). More... | |
template<Player P> | |
static bool | hasCheckmateMove (NumEffectState const &state, King8Info) |
template<Player P> | |
static bool | hasCheckmateMove (NumEffectState const &state, Move &bestMove) |
一手詰めがある局面かどうか判定(move). More... | |
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 Member Functions | |
template<Player P, bool setBestMove> | |
static bool | hasCheckmateDrop (NumEffectState const &state, Square target, King8Info mask, Move &bestMove) |
Definition at line 13 of file immediateCheckmate.h.
|
staticprivate |
bool osl::checkmate::ImmediateCheckmate::hasCheckmateDrop | ( | NumEffectState const & | state, |
Square | target, | ||
King8Info | canMoveMask, | ||
Move & | bestMove | ||
) |
Definition at line 199 of file immediateCheckmate.tcc.
References osl::checkmate::ImmediateCheckmateTable::dropPtypeMask(), osl::checkmate::Immediate_Checkmate_Table, osl::PTYPE_BASIC_MIN, and target.
|
static |
一手詰めがある局面かどうか判定(move).
手番の側に王手がかかっている場合は除く 長い利きによる王手は生成しない. pinされている駒の利きがないために詰みになる例も扱わない.
P(template) | - 攻撃側(手番側)のプレイヤー |
state | - 局面 |
|
static |
|
static |
一手詰めがある局面かどうか判定(move).
手番の側に王手がかかっている場合は除く 長い利きによる王手は生成しない. pinされている駒の利きがないために詰みになる例も扱わない.
P(template) | - 攻撃側(手番側)のプレイヤー |
state | - 局面 |
best_move | - ある場合に詰めの手を返す |
|
static |
|
static |
Definition at line 35 of file immediateCheckmate.cc.
References osl::BLACK.
|
static |
Definition at line 44 of file immediateCheckmate.cc.
References osl::BLACK.
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | NumEffectState const & | state, |
Square | target, | ||
King8Info | canMoveMask, | ||
Move & | bestMove | ||
) |
Definition at line 385 of file immediateCheckmate.tcc.
References osl::checkmate::King8Info::uint64Value().
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | NumEffectState const & | state, |
King8Info | canMoveMask | ||
) |
Definition at line 400 of file immediateCheckmate.tcc.
References osl::Square::isOnBoard(), and target.
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | NumEffectState const & | state) |
Definition at line 414 of file immediateCheckmate.tcc.
References osl::Square::isOnBoard(), and target.
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | NumEffectState const & | state, |
King8Info | canMoveMask, | ||
Square | target, | ||
Move & | bestMove | ||
) |
Definition at line 427 of file immediateCheckmate.tcc.
References osl::Square::isOnBoard(), and target.
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMove | ( | NumEffectState const & | state, |
Move & | bestMove | ||
) |
Definition at line 440 of file immediateCheckmate.tcc.
References target.
|
static |
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDir | ( | NumEffectState const & | state, |
Square | target, | ||
King8Info | canMoveMask, | ||
Direction | d, | ||
Move & | bestMove | ||
) |
Definition at line 363 of file immediateCheckmate.tcc.
References osl::Board_Table, osl::BoardTable::getOffset(), osl::effect_util::AdditionalEffect::hasEffect(), and osl::Square::isOnBoard().
|
static |
bool osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDirPiece | ( | NumEffectState const & | state, |
Square | target, | ||
King8Info | canMoveMask, | ||
Direction | d, | ||
Square | pos, | ||
Piece | p, | ||
Move & | bestMove | ||
) |
Definition at line 330 of file immediateCheckmate.tcc.
References osl::BLACK, osl::Board_Table, osl::canPromote(), osl::Square::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::promote(), osl::Piece::ptype(), osl::Piece::square(), and osl::checkmate::King8Info::uint64Value().
|
static |
bool osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece | ( | NumEffectState const & | state, |
Square | target, | ||
King8Info | canMoveMask, | ||
Direction | d, | ||
Square | pos, | ||
Piece | p, | ||
Ptype | ptype, | ||
Move & | bestMove | ||
) |
Definition at line 216 of file immediateCheckmate.tcc.
References osl::Board_Table, count, osl::BoardTable::getOffset(), osl::checkmate::Immediate_Checkmate_Table, osl::BoardTable::isBetween(), osl::Piece::isEmpty(), osl::checkmate::ImmediateCheckmateTable::noEffectMask(), osl::Piece::number(), osl::PROOK, osl::Piece::ptype(), osl::Square::square, osl::Piece::square(), osl::checkmate::King8Info::uint64Value(), osl::Square::x(), and osl::Square::y().