クラス テンプレート osl::effect::NumSimpleEffect< State >

Ķ [詳細]

#include <numSimpleEffect.h>

osl::effect::NumSimpleEffect< State >に対する継承グラフ

Inheritance graph
[凡例]
osl::effect::NumSimpleEffect< State >のコラボレーション図

Collaboration graph
[凡例]

すべてのメンバ一覧

Public 型

typedef NumSimpleEffect< Stateeffect_state_t
 Ѿ饹 effect ĤФ˻Ѥ

Public メソッド

const PieceMask & getOnBoardMask (Player p) const
bool isOnBoardNum (int num) const
Piece getPieceOf (int num) const
template<Player P, Ptype T, typename F>
void forEachOnBoard (F &func) const
 T isBasic ǤʤƤư unpromote(T) η̤Ʊ.
 NumSimpleEffect (const state::SimpleState &st)
 ~NumSimpleEffect ()
NumBitmapEffect getEffect (Position pos) const
bool isConsistent (bool showError) const
void doSimpleMove (Position from, Position to, int promoteMask)
void doDropMove (Position to, Ptype ptype)
void doCaptureMove (Position from, Position to, Piece target, int promoteMask)
template<Direction Dir, Player P>
bool hasEffectDir (Position to) const
 ޥˤDirectionǤĹ뤫ɤ.
template<Ptype PTYPE>
bool hasEffectLong (Player P, Position to) const
 ޥPTYPEĹ뤫ɤ.
bool hasEffectBy (Player player, Position target) const
 оݤȤޥˤץ쥤䡼뤫ɤ.
bool hasEffectNotBy (Player player, Piece piece, Position target) const
 оݤȤޥˤץ쥤䡼(ʳ)뤫ɤ.
bool hasMultipleEffectBy (Player player, Position target) const
 İʾζ𤫤.
bool hasEffectByPiece (Piece attack, Position target) const
 attack target Ĥ
template<Ptype PTYPE>
bool hasEffectByPtype (Player attack, Position target) const
 target ptype 뤫?
template<Ptype PTYPE>
const Piece effectPtype (Player attack, Position target) const
 return a piece s.t.
int countEffect2 (Player player, Position target) const
 ο2ޤǿ
int countEffect (Player player, Position target) const
 ο.
int countEffect (Player player, Position target, PieceMask pins) const
 ο.
int countKingEffect (Player P, Position target) const
 ̵̤ͭȤʳζ2ޤǿ
int countKingEffect (Player P, Position target, PieceMask dont_use) const
template<Player P>
Piece hasEffectPiece (Position p) const
 1Ĥpiece֤ ʤPieceEMPTY()֤
Piece hasEffectPiece (Player pl, Position pos) const
template<Player P, Ptype Type, class Action>
void forEachEffectPtype (Position pos, Action &action) const
template<Player P, class Action>
void forEachEffect (Position pos, Action &action) const
 pos ˤ move action member ƤӽФ.
template<Player P, class Action>
void forEachEffect (Position pos, Action &action, const PieceMask &pin) const
 pos ˤ move action member ƤӽФ.
template<Player P, class Action>
void forEachEffectNotBy (Position pos, Piece piece, Action &action) const
 pos ˤ move action member ƤӽФ
template<Player P, class Action>
void forSortedEffect (Position pos, Action &action) const
 ®ٽŻǤϤʤֽŻ pos ˤ move action member ƤӽФ
bool hasEffectTo (Piece attackerPiece, Position targetPosition) const
 attackerPiecetargetPositionĤɤ.
template<Player P>
bool hasEffectBy (Position target) const
 оݤȤޥˤץ쥤䡼뤫ɤ.
bool hasEffectBy (Player P, Position target, Piece &attackerPiece) const
template<Player P>
bool hasEffectBy (Position target, Piece &attackerPiece) const
template<Player P>
bool lastMoveIsCheck (Move, Piece &attack_piece) const
 μ꤬꤫ɤ Ĥζˤ벦ξattckPieceˤζ ʣζˤ벦ξPieceEMPTY()
Player getTurn () const
Piece getPieceAt (Position pos) const
template<Player P, Ptype T>
bool hasPieceOnStand () const
bool hasPieceOnStand (Player pl, Ptype ptype) const
bool isValidMoveByRule (Move move, bool showError) const
template<bool show_error>
bool isAlmostValidMove (Move move) const
 ˡ꤫ɤñ˸롥̤˰¸åΤߡ 롼ؤʤǤǽϡisValidMove Ѥ롥
bool isAlmostValidMove (Move move, bool show_error=true) const

Private 型

typedef NumSimpleEffect state_t

Private メソッド

PieceMask & getOnBoardMask (Player p)
int countKingEffect (Player P, PieceMask pieces) const

Private 変数

NumSimpleEffectTable< typename
State::simple_state_t > 
effects
CArray< PieceMask, 2 > onBoardMask

フレンド

class apply_move::ApplyDoUndoSimpleMove< BLACK, NumSimpleEffect >
class apply_move::ApplyDoUndoCaptureMove< BLACK, NumSimpleEffect >
class apply_move::ApplyDoUndoDropMove< BLACK, NumSimpleEffect >
class apply_move::ApplyDoUndoSimpleMove< WHITE, NumSimpleEffect >
class apply_move::ApplyDoUndoCaptureMove< WHITE, NumSimpleEffect >
class apply_move::ApplyDoUndoDropMove< WHITE, NumSimpleEffect >
bool operator== (const NumSimpleEffect &st1, const NumSimpleEffect &st2)


説明

template<class State>
class osl::effect::NumSimpleEffect< State >

Ķ

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


型定義

Ѿ饹 effect ĤФ˻Ѥ

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

template<class State>
typedef NumSimpleEffect osl::effect::NumSimpleEffect< State >::state_t [private]

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


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

template<class State>
osl::effect::NumSimpleEffect< State >::NumSimpleEffect ( const state::SimpleState st  )  [explicit]

template<class State>
osl::effect::NumSimpleEffect< State >::~NumSimpleEffect (  )  [inline]

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


関数

template<class State>
PieceMask& osl::effect::NumSimpleEffect< State >::getOnBoardMask ( Player  p  )  [inline, private]

template<class State>
const PieceMask& osl::effect::NumSimpleEffect< State >::getOnBoardMask ( Player  p  )  const [inline]

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

template<class State>
bool osl::effect::NumSimpleEffect< State >::isOnBoardNum ( int  num  )  const [inline]

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

template<class State>
Piece osl::effect::NumSimpleEffect< State >::getPieceOf ( int  num  )  const [inline]

template<class State>
template<Player P, Ptype T, typename F>
void osl::effect::NumSimpleEffect< State >::forEachOnBoard ( F &  func  )  const [inline]

T isBasic ǤʤƤư unpromote(T) η̤Ʊ.

64bitǤʤϤ

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

template<class State>
NumBitmapEffect osl::effect::NumSimpleEffect< State >::getEffect ( Position  pos  )  const [inline]

template<class State>
bool osl::effect::NumSimpleEffect< State >::isConsistent ( bool  showError  )  const [inline]

template<class State>
void osl::effect::NumSimpleEffect< State >::doSimpleMove ( Position  from,
Position  to,
int  promoteMask 
) [inline]

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

参照先 osl::BLACK, osl::PtypeTraits< PAWN >::indexLimit, と osl::newPtypeO().

template<class State>
void osl::effect::NumSimpleEffect< State >::doDropMove ( Position  to,
Ptype  ptype 
) [inline]

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

参照先 osl::BLACK, と osl::PAWN.

template<class State>
void osl::effect::NumSimpleEffect< State >::doCaptureMove ( Position  from,
Position  to,
Piece  target,
int  promoteMask 
) [inline]

template<class State>
template<Direction Dir, Player P>
bool osl::effect::NumSimpleEffect< State >::hasEffectDir ( Position  to  )  const [inline]

ޥˤDirectionǤĹ뤫ɤ.

64bitбѤ

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

template<class State>
template<Ptype PTYPE>
bool osl::effect::NumSimpleEffect< State >::hasEffectLong ( Player  P,
Position  to 
) const [inline]

ޥPTYPEĹ뤫ɤ.

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

template<class State>
bool osl::effect::NumSimpleEffect< State >::hasEffectBy ( Player  player,
Position  target 
) const [inline]

оݤȤޥˤץ쥤䡼뤫ɤ.

引数:
player ¦
target оݤΥޥ

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

参照元 osl::checkmate::ConfirmNoEscape< State, Attacker >::operator()().

template<class State>
bool osl::effect::NumSimpleEffect< State >::hasEffectNotBy ( Player  player,
Piece  piece,
Position  target 
) const [inline]

оݤȤޥˤץ쥤䡼(ʳ)뤫ɤ.

ꤷ뤳Ȥ.

引数:
player ¦
piece ¦ζ
target оݤΥޥ

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

template<class State>
bool osl::effect::NumSimpleEffect< State >::hasMultipleEffectBy ( Player  player,
Position  target 
) const [inline]

İʾζ𤫤.

⤽ʤƤФ

引数:
player ¦
target оݤΥޥ

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

template<class State>
bool osl::effect::NumSimpleEffect< State >::hasEffectByPiece ( Piece  attack,
Position  target 
) const [inline]

attack target Ĥ

引数:
target оݤΥޥ

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

参照元 osl::effect::NumSimpleEffect< State >::isAlmostValidMove().

template<class State>
template<Ptype PTYPE>
bool osl::effect::NumSimpleEffect< State >::hasEffectByPtype ( Player  attack,
Position  target 
) const [inline]

target ptype 뤫?

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

template<class State>
template<Ptype PTYPE>
const Piece osl::effect::NumSimpleEffect< State >::effectPtype ( Player  attack,
Position  target 
) const [inline]

return a piece s.t.

owner == attack, ptype == PTYPE, has effect on target. return Piece::EMPTY() otherwise

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

template<class State>
int osl::effect::NumSimpleEffect< State >::countEffect2 ( Player  player,
Position  target 
) const [inline]

ο2ޤǿ

戻り値:
0,1,2 (2ξ2ʾ)

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

template<class State>
int osl::effect::NumSimpleEffect< State >::countEffect ( Player  player,
Position  target 
) const [inline]

ο.

targetפϤ߽ФƤϤʤ

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

参照元 osl::effect::NumSimpleEffect< PawnMaskState >::countEffect2().

template<class State>
int osl::effect::NumSimpleEffect< State >::countEffect ( Player  player,
Position  target,
PieceMask  pins 
) const [inline]

ο.

targetפϤ߽ФƤϤʤ

引数:
pins ζϿʤ

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

template<class State>
int osl::effect::NumSimpleEffect< State >::countKingEffect ( Player  P,
PieceMask  pieces 
) const [inline, private]

template<class State>
int osl::effect::NumSimpleEffect< State >::countKingEffect ( Player  P,
Position  target 
) const [inline]

̵̤ͭȤʳζ2ޤǿ

戻り値:
0 ʤˤʤ, 1 ̤Τ, 2 ʳ1İʾ夢

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

template<class State>
int osl::effect::NumSimpleEffect< State >::countKingEffect ( Player  P,
Position  target,
PieceMask  dont_use 
) const [inline]

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

template<class State>
template<Player P>
Piece osl::effect::NumSimpleEffect< State >::hasEffectPiece ( Position  p  )  const [inline]

1Ĥpiece֤ ʤPieceEMPTY()֤

引数:
P(template) ¦
p åȤΰ

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

template<class State>
Piece osl::effect::NumSimpleEffect< State >::hasEffectPiece ( Player  pl,
Position  pos 
) const [inline]

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

template<class State>
template<Player P, Ptype Type, class Action>
void osl::effect::NumSimpleEffect< State >::forEachEffectPtype ( Position  pos,
Action &  action 
) const [inline]

引数:
P ¦
Type 

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

template<class State>
template<Player P, class Action>
void osl::effect::NumSimpleEffect< State >::forEachEffect ( Position  pos,
Action &  action 
) const [inline]

pos ˤ move action member ƤӽФ.

引数:
action Ȥ AlwaysMoveAction

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

template<class State>
template<Player P, class Action>
void osl::effect::NumSimpleEffect< State >::forEachEffect ( Position  pos,
Action &  action,
const PieceMask &  pin 
) const [inline]

pos ˤ move action member ƤӽФ.

引数:
pin ̵뤹
action Ȥ AlwaysMoveAction

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

template<class State>
template<Player P, class Action>
void osl::effect::NumSimpleEffect< State >::forEachEffectNotBy ( Position  pos,
Piece  piece,
Action &  action 
) const [inline]

pos ˤ move action member ƤӽФ

引数:
action Ȥ AlwayMoveAction
piece ʳζȤ

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

template<class State>
template<Player P, class Action>
void osl::effect::NumSimpleEffect< State >::forSortedEffect ( Position  pos,
Action &  action 
) const [inline]

®ٽŻǤϤʤֽŻ pos ˤ move action member ƤӽФ

引数:
action Ȥ AlwayMoveAction

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

template<class State>
bool osl::effect::NumSimpleEffect< State >::hasEffectTo ( Piece  attackerPiece,
Position  targetPosition 
) const [inline]

attackerPiecetargetPositionĤɤ.

targetPosition϶Ǥɤ

引数:
attackerPiece 
targetPosition 

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

template<class State>
template<Player P>
bool osl::effect::NumSimpleEffect< State >::hasEffectBy ( Position  target  )  const [inline]

оݤȤޥˤץ쥤䡼뤫ɤ.

引数:
player ¦
target оݤΥޥ

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

template<class State>
bool osl::effect::NumSimpleEffect< State >::hasEffectBy ( Player  P,
Position  target,
Piece attackerPiece 
) const [inline]

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

template<class State>
template<Player P>
bool osl::effect::NumSimpleEffect< State >::hasEffectBy ( Position  target,
Piece attackerPiece 
) const [inline]

引数:
P(template) - ĤƤ¦Υץ쥤
target - Ĥ줿
attackerPiece - multiple attackξPieceEMPTY() ǤʤʤĤƤ֤

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

template<class State>
template<Player P>
bool osl::effect::NumSimpleEffect< State >::lastMoveIsCheck ( Move  ,
Piece attack_piece 
) const [inline]

μ꤬꤫ɤ Ĥζˤ벦ξattckPieceˤζ ʣζˤ벦ξPieceEMPTY()

引数:
P(template) - ߤμ(ä, movealt(P))

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

template<class State>
Player osl::effect::NumSimpleEffect< State >::getTurn (  )  const [inline]

template<class State>
Piece osl::effect::NumSimpleEffect< State >::getPieceAt ( Position  pos  )  const [inline]

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

参照元 osl::effect::NumSimpleEffect< State >::isAlmostValidMove().

template<class State>
template<Player P, Ptype T>
bool osl::effect::NumSimpleEffect< State >::hasPieceOnStand (  )  const [inline]

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

参照元 osl::effect::NumSimpleEffect< State >::isAlmostValidMove().

template<class State>
bool osl::effect::NumSimpleEffect< State >::hasPieceOnStand ( Player  pl,
Ptype  ptype 
) const [inline]

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

template<class State>
bool osl::effect::NumSimpleEffect< State >::isValidMoveByRule ( Move  move,
bool  showError 
) const [inline]

template<class State>
template<bool show_error>
bool osl::effect::NumSimpleEffect< State >::isAlmostValidMove ( Move  move  )  const [inline]

template<class State>
bool osl::effect::NumSimpleEffect< State >::isAlmostValidMove ( Move  move,
bool  show_error = true 
) const [inline]

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


フレンドと関連する関数

template<class State>
friend class apply_move::ApplyDoUndoSimpleMove< BLACK, NumSimpleEffect > [friend]

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

template<class State>
friend class apply_move::ApplyDoUndoCaptureMove< BLACK, NumSimpleEffect > [friend]

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

template<class State>
friend class apply_move::ApplyDoUndoDropMove< BLACK, NumSimpleEffect > [friend]

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

template<class State>
friend class apply_move::ApplyDoUndoSimpleMove< WHITE, NumSimpleEffect > [friend]

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

template<class State>
friend class apply_move::ApplyDoUndoCaptureMove< WHITE, NumSimpleEffect > [friend]

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

template<class State>
friend class apply_move::ApplyDoUndoDropMove< WHITE, NumSimpleEffect > [friend]

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

template<class State>
bool operator== ( const NumSimpleEffect< State > &  st1,
const NumSimpleEffect< State > &  st2 
) [friend]


変数

template<class State>
NumSimpleEffectTable<typename State::simple_state_t> osl::effect::NumSimpleEffect< State >::effects [private]

template<class State>
CArray<PieceMask,2> osl::effect::NumSimpleEffect< State >::onBoardMask [private]


このクラスの説明は次のファイルから生成されました:

Thu Oct 8 05:01:16 2009に生成されました。  doxygen 1.5.6