クラス osl::effect::NumSimpleEffectTable

局面全体の利きデータ. [詳細]

#include <numSimpleEffect.h>

osl::effect::NumSimpleEffectTableのコラボレーション図
Collaboration graph
[凡例]

すべてのメンバ一覧

Public メソッド

template<Player P, Ptype T, Direction Dir, NumBitmapEffect::Op OP, bool UC>
void doEffectShort (const SimpleState &state, Position pos, int num)
 ある位置からある方向に短い利きがある時に,その方向の利きを更新する.
template<Player P, Ptype T, Direction Dir, NumBitmapEffect::Op OP, bool UC>
void doEffectLong (const SimpleState &state, Position pos, int num)
 ある位置からある方向に長い利きがある時に,その方向の利きを更新する.
template<Player P, Ptype T, NumBitmapEffect::Op OP, bool UC>
void doEffectBy (const SimpleState &state, Position pos, int num)
 ある種類の駒が持つ利きを更新する.
template<NumBitmapEffect::Op OP, bool UC>
void doEffect (const SimpleState &state, PtypeO ptypeo, Position pos, int num)
 ある種類の駒が持つ利きを更新する.
template<NumBitmapEffect::Op OP, bool UC>
void doEffect (const SimpleState &state, Piece p)
 ある駒が持つ利きを更新する.
void init (const SimpleState &state)
 盤面のデータを元に初期化する.
 NumSimpleEffectTable (const SimpleState &state)
 コンストラクタ.
const NumBitmapEffect getEffect (Position pos) const
 ある位置の利きデータを取り出す.
template<NumBitmapEffect::Op OP, bool UC>
void doBlockAt (const SimpleState &state, Position pos, int piece_num)
 posに駒を設置/削除して長い利きをブロック/延長する際の利きデータの更新.
const BoardMask changedEffects (Player pl) const
const NumBitmapEffect changedPieces () const
const PieceMask effectedMask (Player pl) const
const PieceMask effectedChanged (Player pl) const
void setChangedPieces (NumBitmapEffect const &effect)
void clearChangedEffects ()
void invalidateChangedEffects ()
void clearEffectedChanged ()

Public 変数

CArray< PieceMask, 2 > effected_mask
CArray< PieceMask, 2 > effected_changed_mask
mobility::MobilityTable mobilityTable
 mobility
EffectedNumTable effectedNumTable
 effected num

Protected 変数

CArray< NumBitmapEffect,
Position::SIZE > 
effects
CArray< BoardMask, 2 > changed_effects
NumBitmapEffect changed_effect_pieces
 set of pieces whose effect changed by previous move

フレンド

class osl::misc::FastCopier
bool operator== (const NumSimpleEffectTable &et1, const NumSimpleEffectTable &et2)

説明

局面全体の利きデータ.

numSimpleEffect.h32 行で定義されています。


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

osl::effect::NumSimpleEffectTable::NumSimpleEffectTable ( const SimpleState &  state  )  [inline]

コンストラクタ.

numSimpleEffect.h216 行で定義されています。

参照先 init().


関数

const BoardMask osl::effect::NumSimpleEffectTable::changedEffects ( Player  pl  )  const [inline]

numSimpleEffect.h241 行で定義されています。

参照先 changed_effects.

参照元 osl::state::NumEffectState::changedEffects().

const NumBitmapEffect osl::effect::NumSimpleEffectTable::changedPieces (  )  const [inline]

numSimpleEffect.h244 行で定義されています。

参照先 changed_effect_pieces.

参照元 osl::state::NumEffectState::changedPieces().

void osl::effect::NumSimpleEffectTable::clearChangedEffects (  )  [inline]

numSimpleEffect.h256 行で定義されています。

参照先 changed_effect_pieces, と changed_effects.

参照元 osl::state::NumEffectState::makeMovePass().

void osl::effect::NumSimpleEffectTable::clearEffectedChanged (  )  [inline]

numSimpleEffect.h266 行で定義されています。

参照先 effected_changed_mask.

参照元 osl::state::NumEffectState::makeMovePass().

template<osl::effect::NumBitmapEffect::Op OP, bool UC>
void osl::effect::NumSimpleEffectTable::doBlockAt ( const SimpleState &  state,
Position  pos,
int  piece_num 
) [inline]

posに駒を設置/削除して長い利きをブロック/延長する際の利きデータの更新.

引数:
OP(template) - 利きを足すか,減らすか
state - 局面の状態 posに駒を置く前でも後でもよい
pos - 変化する位置

xorなのでposに元々駒があって,取り除く時にも呼び出せる.

引数:
state - 局面の状態 posに駒を置く前でも後でもよい
pos - 変化する位置

numSimpleEffect.h291 行で定義されています。

参照先 osl::BLACK, osl::Board_Table, changed_effects, effected_changed_mask, effected_mask, effectedNumTable, effects, osl::EMPTY_NUM, osl::mobility::MobilityTable::get(), osl::BoardTable::getShort8(), osl::Position::index(), osl::Piece::isEdgeNum(), osl::Piece::isEmptyNum(), osl::effect::NumBitmapEffect::longEffectMask(), osl::effect::NumBitmapEffect::longToNumOffset, osl::effect::NumBitmapEffect::makeLongEffect(), mobilityTable, osl::Piece::owner(), osl::effect::NumBitmapEffect::playerEffectMask(), osl::Piece::position(), osl::PPAWN, osl::Piece::ptype(), osl::mobility::MobilityTable::set(), setChangedPieces(), と osl::effect::NumBitmapEffect::Sub.

template<NumBitmapEffect::Op OP, bool UC>
void osl::effect::NumSimpleEffectTable::doEffect ( const SimpleState &  state,
Piece  p 
) [inline]

ある駒が持つ利きを更新する.

引数:
OP(template) - 利きを足すか,減らすか
state - 盤面(動かした後)
p - 駒

numSimpleEffect.h204 行で定義されています。

参照先 osl::Piece::number(), osl::Piece::position(), と osl::Piece::ptypeO().

template<osl::effect::NumBitmapEffect::Op OP, bool UC>
void osl::effect::NumSimpleEffectTable::doEffect ( const SimpleState &  state,
PtypeO  ptypeo,
Position  pos,
int  num 
) [inline]

ある種類の駒が持つ利きを更新する.

引数:
OP(template) - 利きを足すか,減らすか
state - 盤面(動かした後)
ptypeo - 駒の種類
pos - 駒の位置
num - 駒番号

numSimpleEffect.tcc13 行で定義されています。

参照先 osl::BISHOP, osl::BLACK, osl::GOLD, osl::KING, osl::KNIGHT, osl::LANCE, NEW_PTYPEO, osl::PAWN, osl::PBISHOP, osl::PKNIGHT, osl::PLANCE, osl::PPAWN, osl::PROOK, osl::PSILVER, osl::ROOK, osl::SILVER, と osl::WHITE.

template<osl::Player P, osl::Ptype T, osl::effect::NumBitmapEffect::Op OP, bool UC>
void osl::effect::NumSimpleEffectTable::doEffectBy ( const SimpleState &  state,
Position  pos,
int  num 
) [inline]

ある種類の駒が持つ利きを更新する.

引数:
P(template) - ある位置にある駒の所有者
T(template) - ある位置にある駒の種類
OP(template) - 利きを足すか,減らすか
state - 盤面(動かした後)
pos - 駒の位置
num - 駒番号

numSimpleEffect.tcc51 行で定義されています。

参照先 osl::BISHOP, osl::LANCE, osl::PBISHOP, osl::PROOK, osl::ROOK, と setChangedPieces().

template<Player P, Ptype T, Direction Dir, NumBitmapEffect::Op OP, bool UC>
void osl::effect::NumSimpleEffectTable::doEffectLong ( const SimpleState &  state,
Position  pos,
int  num 
) [inline]

ある位置からある方向に長い利きがある時に,その方向の利きを更新する.

引数:
P(template) - ある位置にある駒の所有者
T(template) - ある位置にある駒の種類
Dir(template) - 黒の立場から見た方向
OP(template) - 利きを足すか,減らすか
state - 盤面(動かした後)
pos - 駒の位置
num - 駒番号

numSimpleEffect.h95 行で定義されています。

参照先 changed_effects, osl::D, osl::DL, osl::DR, effected_changed_mask, effected_mask, effectedNumTable, effects, osl::EMPTY_NUM, osl::mobility::MobilityTable::get(), osl::Position::index(), osl::Piece::isEdgeNum(), osl::Piece::isEmptyNum(), osl::L, osl::longToShort(), mobilityTable, osl::DirectionPlayerTraits< Dir, BLACK >::offset(), osl::effect::NumBitmapEffect::playerEffectMask(), osl::mobility::MobilityTable::set(), osl::Position::STAND(), osl::effect::NumBitmapEffect::Sub, osl::U, osl::UL, osl::UR, osl::Position::x(), osl::Position::y(), と osl::Offset::zero().

template<Player P, Ptype T, Direction Dir, NumBitmapEffect::Op OP, bool UC>
void osl::effect::NumSimpleEffectTable::doEffectShort ( const SimpleState &  state,
Position  pos,
int  num 
) [inline]

ある位置からある方向に短い利きがある時に,その方向の利きを更新する.

引数:
P(template) - ある位置にある駒の所有者
T(template) - ある位置にある駒の種類
D(template) - 駒の所有者の立場から見た方向
OP(template) - 利きを足すか,減らすか
pos - 駒の位置
num - 駒番号

numSimpleEffect.h60 行で定義されています。

参照先 osl::effect::NumBitmapEffect::Add, changed_effects, effected_changed_mask, effected_mask, effects, osl::Position::index(), osl::Piece::isPieceNum(), osl::effect::NumBitmapEffect::playerEffectMask(), と target.

const PieceMask osl::effect::NumSimpleEffectTable::effectedChanged ( Player  pl  )  const [inline]

numSimpleEffect.h250 行で定義されています。

参照先 effected_changed_mask, と osl::playerToIndex().

const PieceMask osl::effect::NumSimpleEffectTable::effectedMask ( Player  pl  )  const [inline]

numSimpleEffect.h247 行で定義されています。

参照先 effected_mask, と osl::playerToIndex().

const NumBitmapEffect osl::effect::NumSimpleEffectTable::getEffect ( Position  pos  )  const [inline]

ある位置の利きデータを取り出す.

引数:
pos - 位置

numSimpleEffect.h225 行で定義されています。

参照先 effects, と osl::Position::index().

参照元 osl::state::NumEffectState::getEffect(), osl::state::NumEffectState::isConsistent(), osl::effect::operator<<(), と osl::effect::operator==().

void osl::effect::NumSimpleEffectTable::init ( const SimpleState &  state  ) 

盤面のデータを元に初期化する.

引数:
state - 盤面

numSimpleEffect.cc6 行で定義されています。

参照先 effects.

参照元 NumSimpleEffectTable().

void osl::effect::NumSimpleEffectTable::invalidateChangedEffects (  )  [inline]

numSimpleEffect.h261 行で定義されています。

参照先 changed_effect_pieces, と changed_effects.

void osl::effect::NumSimpleEffectTable::setChangedPieces ( NumBitmapEffect const &  effect  )  [inline]

numSimpleEffect.h253 行で定義されています。

参照先 changed_effect_pieces.

参照元 doBlockAt(), と doEffectBy().


フレンドと関連する関数

bool operator== ( const NumSimpleEffectTable et1,
const NumSimpleEffectTable et2 
) [friend]
friend class osl::misc::FastCopier [friend]

numSimpleEffect.h270 行で定義されています。


変数

set of pieces whose effect changed by previous move

numSimpleEffect.h42 行で定義されています。

参照元 changedPieces(), clearChangedEffects(), invalidateChangedEffects(), と setChangedPieces().

CArray<BoardMask,2> osl::effect::NumSimpleEffectTable::changed_effects [protected]
CArray<NumBitmapEffect, Position::SIZE> osl::effect::NumSimpleEffectTable::effects [protected]

numSimpleEffect.h39 行で定義されています。

参照元 doBlockAt(), doEffectLong(), doEffectShort(), getEffect(), と init().


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