3#ifndef OSL_SENDOFFPOSITION_H
4#define OSL_SENDOFFPOSITION_H
19 template <Player Attack>
28 template <Player Attack>
46 template <Player Attack>
50 if (onlyOneSupport<Attack>(state, candidate))
57 using effect_util::SendOffSquare;
int countEffect(Player player, Square target) const
利きの数を数える.
bool hasEffectAt(Square target) const
対象とするマスにあるプレイヤーの利きがあるかどうか.
bool isOnBoardByOwner() const
piece がプレイヤーPの持ち物でかつボード上にある駒の場合は true.
const Piece pieceAt(Square sq) const
constexpr Player alt(Player player)
CArray< Offset8, 8 > reverse
CArray< Offset8, 256 > reverse_all
CArray< Offset, 8 > normal
送り金のような玉で取ると利きがはずれる駒が発生するマスを調査
static SendOff8 invalidData()
static void unpack(SendOff8, Square king, Square8 &out)
static SendOff8 find(const NumEffectState &state, Square king_position, Square8 &out)
static bool onlyOneSupport(const NumEffectState &state, Square target)
static void testSquare(const NumEffectState &state, Square candidate, int id, int &out)