3#ifndef PROGRESS_EFFECT5X3D_H
4#define PROGRESS_EFFECT5X3D_H
43 assert(progress >= 0);
44 const int rank = progress / 8 - 16;
45 return Progress16(std::max(std::min(rank, 15), 0));
53 assert(progress >= 0);
54 const int rank = progress / 8 - 8;
55 return Progress16(std::max(std::min(rank, 15), 0));
Square kingSquare() const
ProgressN< 16 > Progress16
玉の周囲5x3の領域の利きの数ら計算した自玉のまわりの利きの数。 5x3領域は盤面内になるように補正する. 黒と白の両方の進行度を持つ. Effect5x3 との違い持駒の重みなし
Effect5x3d(const NumEffectState &state)
const Progress16 progress16() const
static int makeProgress(Player defense, const NumEffectState &state)
static int makeProgress(Player defense, const NumEffectState &state, Square king)
王の位置を指定したprogressの計算.
static const Progress16 progress16each(int progress)
0-15 の値を返す.
CArray< int, 2 > progresses
static const Progress16 progress16(int progress)
0-15 の値を返す
int progress(Player p) const
static int makeProgress(const NumEffectState &state)
const Progress16 progress16(Player p) const
void update(const NumEffectState &new_state, Move last_move)