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