クラス osl::container::NearMask

あるマスの10近傍(8近傍+桂馬の利き)の駒の有無を表すbitset. [詳細]

#include <nearMask.h>

すべてのメンバ一覧

Public メソッド

 NearMask ()
NearMaskoperator|= (NearMask r)
NearMaskoperator&= (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.h20 行で定義されています。


コンストラクタとデストラクタ

osl::container::NearMask::NearMask ( unsigned int  value  )  [inline, explicit, private]

nearMask.h23 行で定義されています。

osl::container::NearMask::NearMask (  )  [inline]

nearMask.h25 行で定義されています。

参照元 make(), と makeDirect().


関数

bool osl::container::NearMask::any (  )  const [inline]

nearMask.h87 行で定義されています。

参照先 mask.

bool osl::container::NearMask::isSet ( int  n  )  const [inline]

nearMask.h76 行で定義されています。

参照先 mask.

template<Player P>
static const NearMask osl::container::NearMask::make ( NumEffectState const &  state,
Position  target 
) [inline, static]

10近傍の駒の状態をチェック NOTE: Stateがsignature effectの時には特殊化した高速バージョンを 作成すべし

nearMask.h52 行で定義されています。

template<Player P, Direction Dir>
static const NearMask osl::container::NearMask::make ( NumEffectState const &  state,
Position  target 
) [inline, static]

あるマスに,利きをつけようとする場合に, 10近傍の状態を返す

引数:
P(template) - 攻撃側のプレイヤー
Dir(template) - この向きの利きをつける場合のマス
state - 盤面を表す
target - 利きをつけられるマス
戻り値:
下位16ビット(中の10ビット)は空白または敵駒の時に1,それ以外で0 上位16ビット(中の10ビット) は空白の時に1, それ以外で0

攻撃する側のマス

nearMask.h40 行で定義されています。

参照先 osl::Piece::canMoveOn(), osl::Piece::isEmpty(), と NearMask().

static const NearMask osl::container::NearMask::makeDirect ( unsigned int  value  )  [inline, static]

nearMask.h26 行で定義されています。

参照先 NearMask().

NearMask& osl::container::NearMask::operator&= ( NearMask  r  )  [inline]

nearMask.h73 行で定義されています。

参照先 mask.

NearMask& osl::container::NearMask::operator|= ( NearMask  r  )  [inline]

nearMask.h72 行で定義されています。

参照先 mask.

unsigned int osl::container::NearMask::spaceMask (  )  const [inline]

nearMask.h75 行で定義されています。

参照先 mask.

int osl::container::NearMask::takeOneBit (  )  [inline]

on の bit を一つoffにし,そのindexを返す

nearMask.h83 行で定義されています。

参照先 mask.

unsigned int osl::container::NearMask::uintValue (  )  const [inline]

nearMask.h88 行で定義されています。

参照先 mask.

参照元 osl::container::operator<(), osl::container::operator<<(), と osl::container::operator==().


変数

unsigned int osl::container::NearMask::mask [private]

nearMask.h22 行で定義されています。

参照元 any(), isSet(), operator&=(), operator|=(), spaceMask(), takeOneBit(), と uintValue().


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義
Sun May 16 09:57:56 2010に生成されました。  doxygen 1.6.3