9 for (
int attack=0; attack<3; ++attack) {
10 for (
int defense=0; defense<3; ++defense) {
13 for (
int p=0; p<8; ++p)
15 for (
int p=0; p<8; ++p)
18 for (
int p=0; p<8; ++p)
50 const int progress8 = env.
progress.value()/2;
51 return index*8 + progress8;
55 :
Group(
"DefenseKing8")
57 for (
int danger=0; danger<=4; ++danger) {
59 for (
int p=0; p<8; ++p)
61 for (
int p=0; p<8; ++p)
78 const int progress8 = env.
progress.value()/2;
79 return index*8 + progress8;
PtypeO ptypeO() const
移動後のPtype, i.e., 成る手だった場合成った後
const Square from() const
bool hasEffectByPiece(Piece attack, Square target) const
駒attack が target に利きを持つか (旧hasEffectToと統合)
const Piece pieceOnBoard(Square sq) const
Square kingSquare() const
const Piece pieceAt(Square sq) const
bool isPieceStand() const
static Square findNearest(const NumEffectState &state, PtypeO ptypeo, Square from, Square target)
static bool matchDrop(const NumEffectState &state, Move move)
static bool matchMove(const NumEffectState &state, Move move)
static int count(const NumEffectState &state)
mutually exclusive set of features
int attack_count_for_turn
constexpr bool isPiece(Ptype ptype)
ptypeが空白やEDGEでないかのチェック
constexpr Player alt(Player player)
int findMatch(const NumEffectState &state, Move m, const RatingEnv &) const
static int index(const NumEffectState &state, Square position, const RatingEnv &env)
int findMatch(const NumEffectState &state, Move m, const RatingEnv &) const