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;
Direction getShort8Unsafe(Square from, Square to) const
8方向にいない場合も適当なものを返す.
Direction getShort8(Square from, Square to) const
PieceMask pinOrOpen(Player king) const
static bool isPieceNum(int num)
Square kingSquare() const
const Piece pieceAt(Square sq) const
const BoardTable Board_Table
const PtypeO PTYPEO_EDGE __attribute__((unused))
static const bool drop_suitable
Pの王をopen checkにする手でないことをチェック.
static bool isMemberMain(const NumEffectState &state, Ptype ptype, Square from, Square to, Square exceptFor)
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にはならな...
static bool isMember(const NumEffectState &state, Ptype ptype, Square from, Square to, Square exceptFor)