27 for (
int i=0; i<8; ++i)
30 for (
int j=0; j<8; ++j)
35 const int dx = king_square.
dx() - target.
dx();
36 const int dy = king_square.
dy() - target.
dy();
46 for (
int i=0; i<256; ++i)
62template <osl::Player Attack>
64#if (defined __GNUC__) && (! defined GPSONE) && (! defined GPSUSIONE)
73 for (
int i=0; i<8; ++i)
78 for (
int i:
table.reverse_all[flags])
80 const Square candidate = king_square +
table.normal[i];
95 unsigned int flags = flags8;
98 const Square candidate = king_square +
table.normal[i];
int countEffect(Player player, Square target) const
利きの数を数える.
int dx() const
Offsetから一般に dxは求まらないので, ここでの入力は12近傍のみとする
int dy() const
Offsetから一般に dyは求まらないので, ここでの入力は12近傍のみとする
const Piece pieceAt(Square sq) const
const PtypeTable Ptype_Table
Offset32Base< 8, 9 > Offset32
const PtypeO PTYPEO_EDGE __attribute__((unused))
PtypeO
Player + Ptype [-15, 15] PtypeO の O は Owner の O.
constexpr Player alt(Player player)
PtypeO newPtypeO(Player player, Ptype ptype)
static osl::SetUpRegister _initializer([](){ osl::effect_util::SendOffSquare::init();})
void push_back(Square position)
CArray< Offset8, 8 > reverse
CArray< Offset8, 256 > reverse_all
CArray< Offset, 8 > normal
static void unpack(SendOff8, Square king, Square8 &out)
static SendOff8 find(const NumEffectState &state, Square king_position, Square8 &out)
static void testSquare(const NumEffectState &state, Square candidate, int id, int &out)
static int takeOneBit(Integer &mask)