osl::effect::NumSimpleEffectTable Class Reference

局面全体の利きデータ. More...

`#include <numSimpleEffect.h>`

## Public Member Functions

template<Player P, Ptype T, Direction Dir, NumBitmapEffect::Op OP, bool UC>
void | doEffectShort (const SimpleState &state, Square pos, int num)
| ある位置からある方向に短い利きがある時に，その方向の利きを更新する.
template<Player P, Ptype T, Direction Dir, NumBitmapEffect::Op OP, bool UC>
void | doEffectLong (const SimpleState &state, Square pos, int num)
| ある位置からある方向に長い利きがある時に，その方向の利きを更新する.
template<Player P, Ptype T, NumBitmapEffect::Op OP, bool UC>
void | doEffectBy (const SimpleState &state, Square pos, int num)
| ある種類の駒が持つ利きを更新する.
template<NumBitmapEffect::Op OP, bool UC>
void | doEffect (const SimpleState &state, PtypeO ptypeo, Square 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 | effectSetAt (Square pos) const
| ある位置の利きデータを取り出す.
template<NumBitmapEffect::Op OP, bool UC>
void | doBlockAt (const SimpleState &state, Square 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 ()
void | copyFrom (const NumSimpleEffectTable &src)
| 主要部分を高速にコピーする.

## Public Attributes

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

## Protected Attributes

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

## Friends

bool | operator== (const NumSimpleEffectTable &et1, const NumSimpleEffectTable &et2)

## Detailed Description

局面全体の利きデータ.

Definition at line 26 of file numSimpleEffect.h.

## Constructor & Destructor Documentation

## NumSimpleEffectTable()

osl::effect::NumSimpleEffectTable::NumSimpleEffectTable | ( | const SimpleState & | state | ) |

inline

コンストラクタ.

Definition at line 210 of file numSimpleEffect.h.

References init().

Referenced by copyFrom(), and operator==.

## Member Function Documentation

## changedEffects()

const BoardMask osl::effect::NumSimpleEffectTable::changedEffects | ( | Player | pl | ) | const

inline

Definition at line 235 of file numSimpleEffect.h.

References changed_effects.

## changedPieces()

const NumBitmapEffect osl::effect::NumSimpleEffectTable::changedPieces | ( |  | ) | const

inline

Definition at line 238 of file numSimpleEffect.h.

References changed_effect_pieces.

## clearChangedEffects()

void osl::effect::NumSimpleEffectTable::clearChangedEffects | ( |  | ) |

inline

Definition at line 250 of file numSimpleEffect.h.

References changed_effect_pieces, and changed_effects.

## clearEffectedChanged()

void osl::effect::NumSimpleEffectTable::clearEffectedChanged | ( |  | ) |

inline

Definition at line 260 of file numSimpleEffect.h.

References effected_changed_mask.

## copyFrom()

void osl::effect::NumSimpleEffectTable::copyFrom | ( | const NumSimpleEffectTable & | src | ) |

主要部分を高速にコピーする.

盤の外や直前の利きの変化などの情報はコピーされない

Definition at line 22 of file numSimpleEffect.cc.

References changed_effect_pieces, changed_effects, effected_changed_mask, effected_mask, effectedNumTable, effects, osl::Square::index(), mobilityTable, and NumSimpleEffectTable().

## doBlockAt()

template<osl::effect::NumBitmapEffect::Op OP, bool UC>

void osl::effect::NumSimpleEffectTable::doBlockAt | ( | const SimpleState & | state,
|  | Square | pos,
|  | int | piece_num )

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

Parameters

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

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

Parameters

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

Definition at line 285 of file numSimpleEffect.h.

References osl::misc::GeneralMask< Integer >::any(), osl::BLACK, osl::Board_Table, changed_effects, effected_changed_mask, effected_mask, effectedNumTable, effects, osl::EMPTY_NUM, osl::BoardMask::index(), osl::Square::index(), osl::Piece::isEdgeNum(), osl::Piece::isEmptyNum(), osl::NumBitmapEffect::longEffectMask(), osl::NumBitmapEffect::makeLongEffect(), mobilityTable, osl::Piece::number(), osl::Piece::owner(), osl::SimpleState::pieceAt(), osl::SimpleState::pieceOf(), osl::NumBitmapEffect::playerEffectMask(), osl::PPAWN, osl::Piece::ptype(), setChangedPieces(), osl::Piece::square(), osl::NumBitmapEffect::Sub, and osl::misc::GeneralMask< Integer >::takeOneBit().

## doEffect() [1/2]

template<NumBitmapEffect::Op OP, bool UC>

void osl::effect::NumSimpleEffectTable::doEffect | ( | const SimpleState & | state,
|  | Piece | p )

inline

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

Parameters

  OP(template) | - 利きを足すか，減らすか
  state | - 盤面(動かした後)
  p | - 駒

Definition at line 198 of file numSimpleEffect.h.

References doEffect(), osl::Piece::number(), osl::Piece::ptypeO(), and osl::Piece::square().

## doEffect() [2/2]

template<NumBitmapEffect::Op OP, bool UC>

void osl::effect::NumSimpleEffectTable::doEffect | ( | const SimpleState & | state,
|  | PtypeO | ptypeo,
|  | Square | pos,
|  | int | num )

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

Parameters

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

Referenced by doEffect(), and init().

## doEffectBy()

template<Player P, Ptype T, NumBitmapEffect::Op OP, bool UC>

void osl::effect::NumSimpleEffectTable::doEffectBy | ( | const SimpleState & | state,
|  | Square | pos,
|  | int | num )

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

Parameters

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

## doEffectLong()

template<Player P, Ptype T, Direction Dir, NumBitmapEffect::Op OP, bool UC>

void osl::effect::NumSimpleEffectTable::doEffectLong | ( | const SimpleState & | state,
|  | Square | pos,
|  | int | num )

inline

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

Parameters

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

Definition at line 89 of file numSimpleEffect.h.

References changed_effects, osl::D, osl::DL, osl::DR, effected_changed_mask, effected_mask, effectedNumTable, effects, osl::EMPTY_NUM, osl::BoardMask::getIndexOffset(), osl::BoardMask::index(), osl::Square::index(), osl::Piece::isEdgeNum(), osl::Piece::isEmptyNum(), osl::L, osl::longToShort(), osl::NumBitmapEffect::makeLongEffect(), mobilityTable, osl::Piece::number(), osl::SimpleState::pieceAt(), osl::NumBitmapEffect::playerEffectMask(), osl::Square::STAND(), osl::NumBitmapEffect::Sub, osl::U, osl::UL, osl::UR, osl::Square::x(), osl::Square::y(), and osl::Offset::zero().

## doEffectShort()

template<Player P, Ptype T, Direction Dir, NumBitmapEffect::Op OP, bool UC>

void osl::effect::NumSimpleEffectTable::doEffectShort | ( | const SimpleState & | state,
|  | Square | pos,
|  | int | num )

inline

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

Parameters

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

Definition at line 54 of file numSimpleEffect.h.

References osl::NumBitmapEffect::Add, changed_effects, effected_changed_mask, effected_mask, effects, osl::BoardMask::getIndexOffset(), osl::BoardMask::index(), osl::Square::index(), osl::Piece::isPieceNum(), osl::NumBitmapEffect::makeEffect(), osl::DirectionTraits< Dir >::mask, osl::Piece::number(), osl::SimpleState::pieceAt(), and osl::NumBitmapEffect::playerEffectMask().

## effectedChanged()

const PieceMask osl::effect::NumSimpleEffectTable::effectedChanged | ( | Player | pl | ) | const

inline

Definition at line 244 of file numSimpleEffect.h.

References effected_changed_mask, and osl::playerToIndex().

## effectedMask()

const PieceMask osl::effect::NumSimpleEffectTable::effectedMask | ( | Player | pl | ) | const

inline

Definition at line 241 of file numSimpleEffect.h.

References effected_mask, and osl::playerToIndex().

## effectSetAt()

const NumBitmapEffect osl::effect::NumSimpleEffectTable::effectSetAt | ( | Square | pos | ) | const

inline

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

Parameters

  pos | - 位置

Definition at line 219 of file numSimpleEffect.h.

References effects, and osl::Square::index().

Referenced by osl::NumEffectState::isConsistent(), osl::effect::operator<<(), and osl::effect::operator==().

## init()

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

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

Parameters

  state | - 盤面

Definition at line 10 of file numSimpleEffect.cc.

References doEffect(), effects, osl::SimpleState::isOnBoard(), and osl::SimpleState::pieceOf().

Referenced by NumSimpleEffectTable().

## invalidateChangedEffects()

void osl::effect::NumSimpleEffectTable::invalidateChangedEffects | ( |  | ) |

inline

Definition at line 255 of file numSimpleEffect.h.

References changed_effect_pieces, and changed_effects.

## setChangedPieces()

void osl::effect::NumSimpleEffectTable::setChangedPieces | ( | NumBitmapEffect const & | effect | ) |

inline

Definition at line 247 of file numSimpleEffect.h.

References changed_effect_pieces.

Referenced by doBlockAt().

## Friends And Related Symbol Documentation

## operator==

bool operator== | ( | const NumSimpleEffectTable & | et1,
|  | const NumSimpleEffectTable & | et2 )

friend

References NumSimpleEffectTable().

## Member Data Documentation

## changed_effect_pieces

NumBitmapEffect osl::effect::NumSimpleEffectTable::changed_effect_pieces

protected

set of pieces whose effect changed by previous move

Definition at line 36 of file numSimpleEffect.h.

Referenced by changedPieces(), clearChangedEffects(), copyFrom(), invalidateChangedEffects(), and setChangedPieces().

## changed_effects

CArray<BoardMask,2> osl::effect::NumSimpleEffectTable::changed_effects

protected

Definition at line 34 of file numSimpleEffect.h.

Referenced by changedEffects(), clearChangedEffects(), copyFrom(), doBlockAt(), doEffectLong(), doEffectShort(), and invalidateChangedEffects().

## effected_changed_mask

CArray<PieceMask,2> osl::effect::NumSimpleEffectTable::effected_changed_mask

Definition at line 39 of file numSimpleEffect.h.

Referenced by clearEffectedChanged(), copyFrom(), doBlockAt(), doEffectLong(), doEffectShort(), and effectedChanged().

## effected_mask

CArray<PieceMask,2> osl::effect::NumSimpleEffectTable::effected_mask

Definition at line 38 of file numSimpleEffect.h.

Referenced by copyFrom(), doBlockAt(), doEffectLong(), doEffectShort(), effectedMask(), and osl::effect::operator==().

## effectedNumTable

EffectedNumTable osl::effect::NumSimpleEffectTable::effectedNumTable

effected num

Definition at line 43 of file numSimpleEffect.h.

Referenced by copyFrom(), doBlockAt(), doEffectLong(), osl::NumEffectState::isConsistent(), and osl::effect::operator==().

## effects

CArray<NumBitmapEffect, Square::SIZE> osl::effect::NumSimpleEffectTable::effects

protected

Definition at line 29 of file numSimpleEffect.h.

Referenced by copyFrom(), doBlockAt(), doEffectLong(), doEffectShort(), effectSetAt(), and init().

## mobilityTable

mobility::MobilityTable osl::effect::NumSimpleEffectTable::mobilityTable

mobility

Definition at line 41 of file numSimpleEffect.h.

Referenced by copyFrom(), doBlockAt(), doEffectLong(), and osl::effect::operator==().

The documentation for this class was generated from the following files:

- numSimpleEffect.h
- numSimpleEffect.cc