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