Go to the documentation of this file.
3 #ifndef OSL_MOVE_CLASSIFIER_KING_OPEN_MOVE_H
4 #define OSL_MOVE_CLASSIFIER_KING_OPEN_MOVE_H
11 namespace move_classifier
49 return isMemberMain<true>(state, ptype, from, to, exceptFor);
52 template <
bool hasException>
65 static const bool result_if_drop =
false;
const Piece pieceAt(Square sq) const
const BoardTable Board_Table
static bool isMemberMain(const NumEffectState &state, Ptype ptype, Square from, Square to, Square exceptFor)
Direction getShort8(Square from, Square to) const
Pの王をopen checkにする手でないことをチェック.
static bool isMember(const NumEffectState &state, Ptype, Square from, Square to)
king が59 rookが51->61の時,差は OFFSET -8 -> U OFFSET +8 -> D とはなるので,一直線のような気がする.ただし,そもとも, 59 - 51はpinにはならな...
PieceMask pinOrOpen(Player king) const
Direction getShort8Unsafe(Square from, Square to) const
8方向にいない場合も適当なものを返す.
Square kingSquare() const
static const bool drop_suitable
static bool isPieceNum(int num)
static bool isMember(const NumEffectState &state, Ptype ptype, Square from, Square to, Square exceptFor)
const PtypeO PTYPEO_EDGE __attribute__((unused))