17 assert(state.
turn() != attacker);
31 if (result.
get(ptype) < max.get(ptype))
Ptype capturePtype() const
bool inUnblockableCheck(Player target) const
target の王に合駒可能でない王手がかかっているかどうか.
void add(Ptype type, unsigned int num=1)
void trySub(Ptype type)
1枚以上持っていれば減らす
unsigned int get(Ptype type) const
Ptype unpromote(Ptype ptype)
ptypeがpromote後の型の時に,promote前の型を返す. promoteしていない型の時はそのまま返す
constexpr bool isPiece(Ptype ptype)
ptypeが空白やEDGEでないかのチェック
constexpr Player alt(Player player)
PtypeO captured(PtypeO ptypeO)
unpromoteすると共に,ownerを反転する.
static void addMonopolizedPieces(const SimpleState &state, Player player, const PieceStand max, PieceStand &out)
alt(player) が持っていない種類の持駒を playerが持っていたら out に独占分を加算する.
static const PieceStand leaf(const NumEffectState &state, Player attacker, const PieceStand max)
static const PieceStand attack(const PieceStand prev, Move move, const PieceStand max)
static const PieceStand defense(const CheckMoveList &moves, const NumEffectState &state, PieceStand max)