あるマスの10近傍(8近傍+桂馬の利き)の駒の有無を表すbitset. [詳細]
#include <nearMask.h>
Public メソッド | |
NearMask () | |
NearMask & | operator|= (NearMask r) |
NearMask & | operator&= (NearMask r) |
unsigned int | spaceMask () const |
bool | isSet (int n) const |
int | takeOneBit () |
on の bit を一つoffにし,そのindexを返す | |
bool | any () const |
unsigned int | uintValue () const |
Static Public メソッド | |
static const NearMask | makeDirect (unsigned int value) |
template<Player P, Direction Dir> | |
static const NearMask | make (NumEffectState const &state, Position target) |
あるマスに,利きをつけようとする場合に, 10近傍の状態を返す | |
template<Player P> | |
static const NearMask | make (NumEffectState const &state, Position target) |
Private メソッド | |
NearMask (unsigned int value) | |
Private 変数 | |
unsigned int | mask |
あるマスの10近傍(8近傍+桂馬の利き)の駒の有無を表すbitset.
手番の側からの固定視点 0-9 bit - Direction(UL=0, .., UUR=9)に対応するマスが空白または敵駒の時に1 16-25 bit - Direction+16(UL=16, .., UUR=25)に対応するマスが空白の時に1 先手番で,マス(3,3)に注目している時に,ULに対応するマスは,(4,2)ではなく (2,4)を指す.(2,4)にULの利きを持つ味方の駒を置くと(3,3)を攻撃できるから
nearMask.h の 20 行で定義されています。
osl::container::NearMask::NearMask | ( | unsigned int | value | ) | [inline, explicit, private] |
nearMask.h の 23 行で定義されています。
osl::container::NearMask::NearMask | ( | ) | [inline] |
nearMask.h の 25 行で定義されています。
参照元 make(), と makeDirect().
bool osl::container::NearMask::any | ( | ) | const [inline] |
nearMask.h の 87 行で定義されています。
参照先 mask.
bool osl::container::NearMask::isSet | ( | int | n | ) | const [inline] |
nearMask.h の 76 行で定義されています。
参照先 mask.
static const NearMask osl::container::NearMask::make | ( | NumEffectState const & | state, | |
Position | target | |||
) | [inline, static] |
10近傍の駒の状態をチェック NOTE: Stateがsignature effectの時には特殊化した高速バージョンを 作成すべし
nearMask.h の 52 行で定義されています。
static const NearMask osl::container::NearMask::make | ( | NumEffectState const & | state, | |
Position | target | |||
) | [inline, static] |
あるマスに,利きをつけようとする場合に, 10近傍の状態を返す
P(template) | - 攻撃側のプレイヤー | |
Dir(template) | - この向きの利きをつける場合のマス | |
state | - 盤面を表す | |
target | - 利きをつけられるマス |
攻撃する側のマス
nearMask.h の 40 行で定義されています。
参照先 osl::Piece::canMoveOn(), osl::Piece::isEmpty(), と NearMask().
static const NearMask osl::container::NearMask::makeDirect | ( | unsigned int | value | ) | [inline, static] |
nearMask.h の 26 行で定義されています。
参照先 NearMask().
nearMask.h の 73 行で定義されています。
参照先 mask.
nearMask.h の 72 行で定義されています。
参照先 mask.
unsigned int osl::container::NearMask::spaceMask | ( | ) | const [inline] |
nearMask.h の 75 行で定義されています。
参照先 mask.
int osl::container::NearMask::takeOneBit | ( | ) | [inline] |
unsigned int osl::container::NearMask::uintValue | ( | ) | const [inline] |
nearMask.h の 88 行で定義されています。
参照先 mask.
参照元 osl::container::operator<(), osl::container::operator<<(), と osl::container::operator==().
unsigned int osl::container::NearMask::mask [private] |
nearMask.h の 22 行で定義されています。
参照元 any(), isSet(), operator&=(), operator|=(), spaceMask(), takeOneBit(), と uintValue().