打歩詰の判定. [詳細]
#include <pawnDropCheckmate.h>
Static Public メソッド | |
template<class State > | |
static bool | canEscape (const State &state, Position kingPosition, Direction dir, Position dropAt) |
kingPosition に居る alt(P)の玉が dir 方向に逃げられるか. | |
template<class State > | |
static bool | escape7 (const State &state, Position kingPosition, Position to) |
王が前以外に移動可能か | |
static bool | isMember (const NumEffectState &state, Ptype ptype, Position from, Position to) |
打歩詰の判定.
P | 指手(攻撃)側 |
pawnDropCheckmate.h の 23 行で定義されています。
bool osl::move_classifier::PawnDropCheckmate< P >::canEscape | ( | const State & | state, | |
Position | kingPosition, | |||
Direction | dir, | |||
Position | dropAt | |||
) | [inline, static] |
kingPosition に居る alt(P)の玉が dir 方向に逃げられるか.
pawnDropCheckmate.h の 70 行で定義されています。
参照先 osl::Board_Table, osl::Piece::EMPTY(), osl::BoardTable::getOffset(), osl::BoardTable::getShortOffsetNotKnight(), osl::Position::isEdge(), osl::Piece::isOnBoardByOwner(), osl::Piece::owner(), osl::Piece::position(), と target.
参照元 osl::move_classifier::PawnDropCheckmate< P >::escape7().
bool osl::move_classifier::PawnDropCheckmate< P >::escape7 | ( | const State & | state, | |
Position | kingPosition, | |||
Position | to | |||
) | [inline, static] |
王が前以外に移動可能か
pawnDropCheckmate.h の 103 行で定義されています。
参照先 osl::move_classifier::PawnDropCheckmate< P >::canEscape(), osl::D, osl::DL, osl::DR, osl::L, osl::R, osl::UL, と osl::UR.
参照元 osl::move_classifier::PawnDropCheckmate< P >::isMember().
static bool osl::move_classifier::PawnDropCheckmate< P >::isMember | ( | const NumEffectState & | state, | |
Ptype | ptype, | |||
Position | from, | |||
Position | to | |||
) | [inline, static] |