14 see(
See::see(*info.state, move, info.pin[info.state->turn()],
15 info.pin[
alt(info.state->turn())])),
19 player(m.player()), stand_index_cache(-1)
bool isNormal() const
INVALID でも PASS でもない.
int countEffect(Player player, Square target) const
利きの数を数える.
bool hasEffectByPiece(Piece attack, Square target) const
駒attack が target に利きを持つか (旧hasEffectToと統合)
const Piece findCheapAttack(Player P, Square square) const
bool hasEffectIf(PtypeO ptypeo, Square attacker, Square target) const
attackerにptypeoの駒がいると仮定した場合にtargetに利きがあるかどうか を stateをupdateしないで確かめる.
const Square square() const
bool hasPieceOnStand(Player player, Ptype ptype) const
Square kingSquare() const
const Piece pieceAt(Square sq) const
bool isPieceStand() const
static const Square isBishopForkSquare(const NumEffectState &state, Player defense, const Square a, const Square b, bool maybe_empty=false)
Ptype unpromote(Ptype ptype)
ptypeがpromote後の型の時に,promote前の型を返す. promoteしていない型の時はそのまま返す
constexpr Player alt(Player player)
drop の時は呼べないなどの条件を代わりにテスト
MoveInfo(const StateInfo &, Move)
bool adhocAdjustBreakThreatmate(const StateInfo &) const
bool adhocAdjustSlider(const StateInfo &) const
bool adhocAdjustAttackCheckmateDefender(const StateInfo &) const
bool adhocAdjustKeepCheckmateDefender(const StateInfo &) const
bool adhocAdjustBishopFork(const StateInfo &) const
const NumEffectState * state
bool pinByOpposingSliders(Piece p) const
CArray< std::pair< Piece, Square >, 2 > checkmate_defender