打歩詰の判定. [詳細]
#include <pawnDropCheckmate.h>
Static Public メソッド | |
static bool | canEscape (const NumEffectState &state, Square kingSquare, Direction dir, Square dropAt) |
kingSquare に居る alt(P)の玉が dir 方向に逃げられるか. | |
static bool | escape7 (const NumEffectState &state, Square kingSquare, Square to) |
王が前以外に移動可能か | |
static bool | isMember (const NumEffectState &state, Ptype ptype, Square from, Square to) |
打歩詰の判定.
P | 指手(攻撃)側 |
pawnDropCheckmate.h の 18 行で定義されています。
bool osl::move_classifier::PawnDropCheckmate< P >::canEscape | ( | const NumEffectState & | state, | |
Square | kingSquare, | |||
Direction | dir, | |||
Square | dropAt | |||
) | [static] |
kingSquare に居る alt(P)の玉が dir 方向に逃げられるか.
pawnDropCheckmate.h の 65 行で定義されています。
参照先 osl::alt(), osl::Board_Table, osl::Piece::EMPTY(), osl::BoardTable::getOffset(), osl::BoardTable::getShortOffsetNotKnight(), osl::Square::isEdge(), osl::Piece::isOnBoardByOwner(), osl::Piece::owner(), osl::SimpleState::pieceAt(), と osl::Piece::square().
参照元 osl::move_classifier::PawnDropCheckmate< P >::escape7().
bool osl::move_classifier::PawnDropCheckmate< P >::escape7 | ( | const NumEffectState & | state, | |
Square | kingSquare, | |||
Square | to | |||
) | [static] |
王が前以外に移動可能か
pawnDropCheckmate.h の 101 行で定義されています。
参照先 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, | |||
Square | from, | |||
Square | to | |||
) | [inline, static] |
pawnDropCheckmate.h の 28 行で定義されています。
参照先 osl::alt(), osl::Piece::EMPTY(), osl::move_classifier::PawnDropCheckmate< P >::escape7(), osl::NumEffectState::hasEffectAt(), osl::NumEffectState::Iking8Info(), osl::Square::isPieceStand(), osl::PAWN, osl::NumEffectState::safeCaptureNotByKing(), と osl::Piece::square().