65 if (move.
ptype() !=
self)
85 && move.
ptype() == ptype;
const Move lastMove(size_t last=1) const
bool match(const NumEffectState &state, Move move, const RatingEnv &) const
bool hasEffectIf(PtypeO ptypeo, Square attacker, Square target) const
attackerにptypeoの駒がいると仮定した場合にtargetに利きがあるかどうか を stateをupdateしないで確かめる...
bool effectiveInCheck() const
bool hasEffectAt(Square target) const
対象とするマスにあるプレイヤーの利きがあるかどうか.
constexpr Player alt(Player player)
bool match(const NumEffectState &state, Move move, const RatingEnv &env) const
bool isNormal() const
INVALID でも PASS でもない.
移動元へのきき。attack defense は言葉の意味と逆で自分がattack
PtypeO ptypeO() const
移動後のPtype, i.e., 成る手だった場合成った後
const PtypeTable Ptype_Table
const Square from() const
Ptype oldPtype() const
移動前のPtype, i.e., 成る手だった場合成る前
bool inCheck(Player P) const
Pの玉が王手状態
FromEffect(int attack, int defense)
const Piece findCheapAttack(Player P, Square square) const
bool match(const NumEffectState &state, Move move, const RatingEnv &) const
PtypeAttacked(Ptype s, Ptype a)
bool match(const NumEffectState &state, Move move, const RatingEnv &) const
const std::string & name() const
bool match(const NumEffectState &state, Square position, const RatingEnv &env) const