Go to the documentation of this file.
3 #ifndef PROGRESS_EFFECT5X3_H
4 #define PROGRESS_EFFECT5X3_H
91 template <Player Attack>
94 template <Player Attack,
bool AlwaysPromotable,
bool AlwaysNotPromotable>
111 template <Player Defense>
static int attackEffect3(const NumEffectState &state, Player attack, Square target)
ProgressN< 16 > Progress16
int min(Player p, int v1, int v2)
const Progress16 progress16(Player p) const
static const Progress16 progress16each(int progress)
0-15 の値を返す.
Effect5x3(const NumEffectState &state)
static const Progress16 progress16(int progress)
0-15 の値を返す
Effect5x3WithBonus(const NumEffectState &state)
static int makeProgressAreaBonus(const NumEffectState &state, Square king)
static int makeProgress(const NumEffectState &state)
void updateProgressBonuses(const NumEffectState &state, bool black=true, bool white=true)
static PieceMask makeEffectMask(const NumEffectState &state)
const Progress16 progress16() const
CArray< int, 2 > area_progresses
CArray< PieceMask, 2 > effect_mask
玉の周囲5x3の領域の利きの数と持駒から計算した進行度.
int countEffectPieces(const NumEffectState &state, Player attack) const
void update(const NumEffectState &new_state, Move last_move)
void update(const NumEffectState &new_state, Move last_move)
static void updateStand(int &old_stand, Move last_move)
CArray< int, 2 > progress_bonuses
const Progress16 progress16bonus(Player p) const
Effect5x3WithBonus expect(const NumEffectState &state, Move move) const
static int makeProgress(Player defense, const NumEffectState &state)
王の位置を指定したprogressの計算.
static int makeProgressStand(Player attack, const NumEffectState &state)
Square kingSquare() const
Effect5x3 expect(const NumEffectState &state, Move move) const
void updateStand(Player pl, Move m)
CArray< int, 2 > stand_progresses
const PieceMask effect5x3Mask(Player p) const
int progress(Player p) const
static int makeProgressAll(Player defense, const NumEffectState &state, Square king)
CArray< int, 2 > progresses
static int makeProgressArea(Player attack, const NumEffectState &state, Square king)