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