クラス osl::state::SimpleState

#include <simpleState.h>

osl::state::SimpleStateに対する継承グラフ

Inheritance graph
[凡例]
osl::state::SimpleStateのコラボレーション図

Collaboration graph
[凡例]

すべてのメンバ一覧

Public 型

typedef SimpleState simple_board_t
 Ѿ饹 ĤФ˻Ѥ
typedef SimpleState simple_state_t
typedef SimpleState effect_state_t

Public メソッド

 SimpleState ()
 SimpleState (Handicap h)
virtual ~SimpleState ()
void init ()
 ̤ξ֤˽
void init (Handicap h)
 ϥǥ˱֤˽
const Piece getPieceOf (int num) const
void setPieceOf (int num, Piece p)
template<Player P>
const Piece getKingPiece () const
const Piece getKingPiece (Player P) const
template<Player P>
Position getKingPosition () const
Position getKingPosition (Player player) const
void setBoard (Position pos, Piece piece)
const PieceMask & standMask (Player p) const
const PieceMask & usedMask () const
bool isOffBoard (int num) const
template<Player P>
bool isPawnMaskSet (int x) const
bool isPawnMaskSet (Player player, int x) const
void setPiece (Player player, Position pos, Ptype ptype)
void setPieceAll (Player player)
const Piece getPieceAt (Position pos) const
const Piece getPieceOnBoard (Position pos) const
bool isOnBoard (int num) const
template<Player P, Ptype T>
bool hasPieceOnStand () const
bool hasPieceOnStand (Player player, Ptype ptype) const
int countPiecesOnStand (Player pl, Ptype ptype) const
 
template<Ptype Type>
int countPiecesOnStand (Player pl) const
Piece nextPiece (Position cur, Offset diff) const
 diffˤPiece .
void setTurn (Player player)
Player getTurn () const
void changeTurn ()
 ֤ѹ
bool isConsistent (bool showError=true) const
template<bool showError>
bool isAlmostValidMove (Move move) const
 顼ɽ򤹤뤫ɤtemplateѥ᡼ˤ®
bool isAlmostValidMove (Move move, bool showError=true) const
 ˡ꤫ɤñ˸롥̤˰¸åΤߡ 롼ؤʤǤǽϡisValidMove Ѥ롥
bool isValidMove (Move move, bool showError=true) const
 ˡ꤫ɤ򸡺롥 isValidMoveByRule, isAlmostValidMove 򤪤ʤ ̤ȴ䲦ɤǤ뤫 ꡤͤɤϸʤ
bool isValidMoveByRule (Move move, bool showError) const
 ̰ʳʬȿ§Υå
bool isEmptyBetween (Position from, Position to, Offset offset, bool pieceExistsAtTo=false) const
bool isEmptyBetween (Position from, Position to, bool noSpaceAtTo=false) const
bool hasEffectFromTo (PtypeO ptypeo, Position attacker, Position target) const
 attackerptypeoζ𤬤Ȳꤷtarget뤫ɤ stateupdateʤdzΤ.
bool hasEffectTo (Piece attackerPiece, Position targetPosition) const
 attackerPiecetargetPositionĤɤ.
template<Player P, bool setPieceP>
bool lastMoveIsOpenCheck (Position from, Position kingPosition, Piece &attackPiece) const
 μ꤬꤫ɤȽꤹ.
template<Player P>
bool lastMoveIsCheck (Move last_move, Piece &attack_piece) const
 μ꤬꤫ɤ.
template<Player P, Ptype T, typename F>
void forEachOnBoard (F &func) const
 T isBasic ǤʤƤư unpromote(T) η̤Ʊ
template<Player P, Ptype Type, class Action, Direction Dir>
void forEachEffectOfPieceDir (Position, Action &, Int2Type< false >) const
template<Player P, Ptype Type, class Action, Direction Dir>
void forEachEffectOfPieceDir (Position piecePosition, Action &action, Int2Type< true >) const
template<Player P, Ptype Type, class Action, Direction Dir>
void forEachEffectOfPieceDir (Position piecePosition, Action &action) const
template<Player P, Ptype Type, class Action, Direction Dir>
void forEachEffectOfPieceLongDir (Position, Action &, Int2Type< false >) const
template<Player P, Ptype Type, class Action, Direction Dir>
void forEachEffectOfPieceLongDir (Position piecePosition, Action &action, Int2Type< true >) const
template<Player P, Ptype Type, class Action, Direction Dir>
void forEachEffectOfPieceLongDir (Position piecePosition, Action &action) const
template<Player P, Ptype Type, class Action>
void forEachEffectOfPiece (Position piecePosition, Action &action) const
 piecePositionˤˤä뤹٤Ƥposition (ޤ)ˤĤ action¹Ԥ
template<class Action>
void forEachEffectOfPiece (Piece piece, Action &action) const
 pieceˤä뤹٤Ƥposition(ޤˤĤ action¹Ԥ
template<Player P, class Action, bool checkDone, class PositionCheck>
void forEachEffectWithCheck (Position pos, Action &action, PositionCheck const &positionCheck) const
template<Player P, class Action>
void forEachEffect (Position pos, Action &action) const
template<Player P>
const Piece hasEffectPiece (Position target) const
const Piece hasEffectPiece (Player pl, Position target) const
template<Player P>
bool hasEffectBy (Position pos) const
bool hasEffectBy (Player player, Position pos) const
template<Player P>
bool hasEffectByWithRemove (Position target, Position removed) const
bool hasEffectByWithRemove (Player player, Position target, Position removed) const
template<Player P>
bool hasEffectBy (Position target, Piece &attackerPiece) const
bool hasEffectBy (Player pl, Position target, Piece &attackerPiece) const
template<Player P>
bool hasMultipleEffectBy (Position target) const
 ٤ƤɤȤǸƤ
bool hasMultipleEffectBy (Player player, Position target) const
template<Player P, class Action>
void forEachEffectNotBy (Position pos, Piece p, Action &action) const
template<Player P>
bool hasEffectNotBy (Piece piece, Position target) const
bool hasEffectNotBy (Player player, Piece piece, Position target) const
template<Player P, class Action>
void forEachEffectPtypeDirection (Position pos, Action &action, Direction dir, Ptype ptype, Int2Type< false > canMove) const
template<Player P, class Action>
void forEachEffectPtypeDirection (Position pos, Action &action, Direction dir, Ptype ptype, Int2Type< true > canMove) const
template<Player P, Ptype Type, Direction Dir, class Action>
void forEachEffectPtypeDirection (Position pos, Action &action) const
template<Player P, Ptype Type, class Action>
void forEachEffectPtype (Position pos, Action &action) const
template<Direction Dir, Player P>
bool hasEffectDir (Position to) const
 ޥˤDirectionǤĹ뤫ɤ
bool dump () const
 dump: ʬ cerr ɽ롣abort ʤɤ˥ǥХå˻Ȥ
void doSimpleMove (Position from, Position to, int promoteMask)
void doDropMove (Position to, Ptype ptype)
void doCaptureMove (Position from, Position to, Piece target, int promoteMask)
const SimpleState emulateCapture (Piece from, Player new_owner) const
 from ɽ줿Piecenew_ownerλˤ̤.
const SimpleState emulateHandPiece (Player from, Player to, Ptype ptype) const
 from to ptypeλϤ̤.
const SimpleState rotate180 () const
const SimpleState flipHorizontal () const
template<class Action>
void forEachEffectOfPiece (Piece piece, Action &action) const
template<osl::Player P, osl::Ptype Type, class Action>
void forEachEffectPtype (Position pos, Action &action) const
template<osl::Player P, class Action, bool checkDone, class PositionCheck>
void forEachEffectWithCheck (Position pos, Action &action, PositionCheck const &positionCheck) const
template<osl::Player P, osl::Ptype Type, class Action>
void forEachEffectOfPiece (Position piecePosition, Action &action) const
template<osl::Player P>
const osl::Piece hasEffectPiece (Position target) const
template<osl::Player P>
bool hasMultipleEffectBy (Position target) const
template<osl::Player P>
bool hasEffectBy (Position target, Piece &attackerPiece) const
template<osl::Player P>
bool hasEffectByWithRemove (Position target, Position removed) const
template<osl::Player P>
bool hasEffectNotBy (Piece piece, Position target) const
template<bool show_error>
bool isAlmostValidMove (Move move) const

Static Public 変数

static const bool hasPawnMask = false

Protected メソッド

PieceMask & standMask (Player p)

Protected 変数

PieceMask used_mask
CArray< PieceMask, 2 > stand_mask
CArray< Piece, Position::SIZE > board
CArray< Piece, Piece::SIZEpieces
 ƤpieceϿƤ
Player turn
 .

Private 型

typedef SimpleState state_t

フレンド

class osl::apply_move::ApplyDoUndoSimpleMove< BLACK, SimpleState >
class osl::apply_move::ApplyDoUndoSimpleMove< WHITE, SimpleState >
class osl::apply_move::ApplyDoUndoCaptureMove< BLACK, SimpleState >
class osl::apply_move::ApplyDoUndoCaptureMove< WHITE, SimpleState >
class osl::apply_move::ApplyDoUndoDropMove< BLACK, SimpleState >
class osl::apply_move::ApplyDoUndoDropMove< WHITE, SimpleState >
class osl::apply_move::DoUndoMoveLockSimple< SimpleState >
class osl::apply_move::DoUndoMoveLockCapture< SimpleState >
class osl::apply_move::DoUndoMoveLockDrop< SimpleState >
std::ostream & operator<< (std::ostream &os, const SimpleState &state)
bool operator== (const SimpleState &st1, const SimpleState &st2)

構成

class  NotEmpty
 ˵Ȥʤ functor [詳細]


説明

simpleState.h33 行で定義されています。


型定義

Ѿ饹 ĤФ˻Ѥ

simpleState.h44 行で定義されています。

osl::state::PawnMaskStateで再定義されています。

simpleState.h45 行で定義されています。

osl::state::PawnMaskStateで再定義されています。

simpleState.h46 行で定義されています。

osl::state::PawnMaskStateで再定義されています。

simpleState.h50 行で定義されています。


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

osl::state::SimpleState::SimpleState (  )  [explicit]

osl::state::SimpleState::SimpleState ( Handicap  h  )  [explicit]

virtual osl::state::SimpleState::~SimpleState (  )  [virtual]


関数

void osl::state::SimpleState::init (  ) 

̤ξ֤˽

osl::state::PawnMaskStateで再定義されています。

void osl::state::SimpleState::init ( Handicap  h  ) 

ϥǥ˱֤˽

osl::state::PawnMaskStateで再定義されています。

const Piece osl::state::SimpleState::getPieceOf ( int  num  )  const [inline]

void osl::state::SimpleState::setPieceOf ( int  num,
Piece  p 
) [inline]

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

参照先 pieces.

template<Player P>
const Piece osl::state::SimpleState::getKingPiece (  )  const [inline]

simpleState.h91 行で定義されています。

参照先 getPieceOf().

const Piece osl::state::SimpleState::getKingPiece ( Player  P  )  const [inline]

simpleState.h94 行で定義されています。

参照先 osl::BLACK, と osl::isValid().

template<Player P>
Position osl::state::SimpleState::getKingPosition (  )  const [inline]

simpleState.h102 行で定義されています。

Position osl::state::SimpleState::getKingPosition ( Player  player  )  const [inline]

simpleState.h105 行で定義されています。

参照先 osl::BLACK, と osl::isValid().

void osl::state::SimpleState::setBoard ( Position  pos,
Piece  piece 
) [inline]

simpleState.h113 行で定義されています。

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

PieceMask& osl::state::SimpleState::standMask ( Player  p  )  [inline, protected]

simpleState.h118 行で定義されています。

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

参照元 countPiecesOnStand(), hasPieceOnStand(), と isOffBoard().

const PieceMask& osl::state::SimpleState::standMask ( Player  p  )  const [inline]

simpleState.h122 行で定義されています。

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

const PieceMask& osl::state::SimpleState::usedMask (  )  const [inline]

simpleState.h125 行で定義されています。

参照先 used_mask.

bool osl::state::SimpleState::isOffBoard ( int  num  )  const [inline]

simpleState.h126 行で定義されています。

参照先 osl::BLACK, standMask(), と osl::WHITE.

template<Player P>
bool osl::state::SimpleState::isPawnMaskSet ( int  x  )  const [inline]

osl::state::PawnMaskStateで再定義されています。

simpleState.h132 行で定義されています。

参照先 osl::BLACK, getPieceAt(), osl::newPtypeO(), osl::PAWN, と osl::Piece::ptypeOMask().

参照元 isAlmostValidMove().

bool osl::state::SimpleState::isPawnMaskSet ( Player  player,
int  x 
) const

osl::state::PawnMaskStateで再定義されています。

simpleState.cc623 行で定義されています。

参照先 osl::BLACK.

void osl::state::SimpleState::setPiece ( Player  player,
Position  pos,
Ptype  ptype 
)

osl::state::PawnMaskStateで再定義されています。

参照元 flipHorizontal(), と rotate180().

void osl::state::SimpleState::setPieceAll ( Player  player  ) 

osl::state::PawnMaskStateで再定義されています。

const Piece osl::state::SimpleState::getPieceAt ( Position  pos  )  const [inline]

const Piece osl::state::SimpleState::getPieceOnBoard ( Position  pos  )  const [inline]

bool osl::state::SimpleState::isOnBoard ( int  num  )  const [inline]

simpleState.h167 行で定義されています。

参照先 getPieceOf(), と osl::Piece::isOnBoard().

template<Player P, Ptype T>
bool osl::state::SimpleState::hasPieceOnStand (  )  const [inline]

simpleState.h171 行で定義されています。

参照先 standMask().

参照元 isAlmostValidMove().

bool osl::state::SimpleState::hasPieceOnStand ( Player  player,
Ptype  ptype 
) const [inline]

simpleState.h175 行で定義されています。

参照先 osl::PtypeTable::getMaskLow(), osl::Ptype_Table, と standMask().

int osl::state::SimpleState::countPiecesOnStand ( Player  pl,
Ptype  ptype 
) const [inline]

simpleState.h191 行で定義されています。

参照先 osl::PtypeTable::getMaskLow(), osl::Ptype_Table, と standMask().

参照元 osl::record::KanjiPrint::print().

template<Ptype Type>
int osl::state::SimpleState::countPiecesOnStand ( Player  pl  )  const [inline]

simpleState.h197 行で定義されています。

参照先 osl::isBasic(), と standMask().

Piece osl::state::SimpleState::nextPiece ( Position  cur,
Offset  diff 
) const [inline]

diffˤPiece .

戻り値:
׳ʤPTYPE_EDGE

simpleState.h206 行で定義されています。

参照先 osl::Piece::EMPTY(), getPieceAt(), と osl::Offset::zero().

void osl::state::SimpleState::setTurn ( Player  player  )  [inline]

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

参照先 turn.

参照元 flipHorizontal(), と rotate180().

Player osl::state::SimpleState::getTurn (  )  const [inline]

void osl::state::SimpleState::changeTurn (  )  [inline]

bool osl::state::SimpleState::isConsistent ( bool  showError = true  )  const

osl::state::PawnMaskStateで再定義されています。

参照元 osl::state::operator==().

template<bool showError>
bool osl::state::SimpleState::isAlmostValidMove ( Move  move  )  const [inline]

顼ɽ򤹤뤫ɤtemplateѥ᡼ˤ®

bool osl::state::SimpleState::isAlmostValidMove ( Move  move,
bool  showError = true 
) const

ˡ꤫ɤñ˸롥̤˰¸åΤߡ 롼ؤʤǤǽϡisValidMove Ѥ롥

̤˰¸븡Ǥ⡤̤ȴ䲦ɤǤ뤫 ꡤͤɤϸʤ

bool osl::state::SimpleState::isValidMove ( Move  move,
bool  showError = true 
) const

ˡ꤫ɤ򸡺롥 isValidMoveByRule, isAlmostValidMove 򤪤ʤ ̤ȴ䲦ɤǤ뤫 ꡤͤɤϸʤ

bool osl::state::SimpleState::isValidMoveByRule ( Move  move,
bool  showError 
) const

̰ʳʬȿ§Υå

static ˤǤ뤬ޤǤΤǸ

参照元 isAlmostValidMove().

bool osl::state::SimpleState::isEmptyBetween ( Position  from,
Position  to,
Offset  offset,
bool  pieceExistsAtTo = false 
) const [inline]

引数:
from - ޥΰ
to - ޥΰ
offset - fromtoؤshort offset fromtoִطˤȤ ǡ֤򤫤å
pieceExistsAtTo - toɬ𤬤 (toǤư)

simpleState.h264 行で定義されています。

参照先 osl::Board_Table, getPieceAt(), osl::BoardTable::getShortOffset(), osl::Piece::isEmpty(), osl::Position::isOnBoard(), と osl::Offset::zero().

参照元 hasEffectFromTo(), isEmptyBetween(), と lastMoveIsOpenCheck().

bool osl::state::SimpleState::isEmptyBetween ( Position  from,
Position  to,
bool  noSpaceAtTo = false 
) const [inline]

引数:
from - ޥΰ
to - ޥΰ fromtoִطˤȤ ǡ֤򤫤å

simpleState.h283 行で定義されています。

参照先 osl::Board_Table, osl::BoardTable::getShortOffset(), isEmptyBetween(), と osl::Position::isOnBoard().

bool osl::state::SimpleState::hasEffectFromTo ( PtypeO  ptypeo,
Position  attacker,
Position  target 
) const [inline]

attackerptypeoζ𤬤Ȳꤷtarget뤫ɤ stateupdateʤdzΤ.

targetPosition϶Ǥɤ ׾ζưƤƤȤϤˡ ʬȤαäʤȸʤ뤳Ȥ

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

参照先 osl::Board_Table, osl::PtypeTable::getEffect(), osl::BoardTable::getShortOffset(), osl::EffectContent::hasEffect(), osl::EffectContent::hasUnblockableEffect(), isEmptyBetween(), osl::EffectContent::offset(), と osl::Ptype_Table.

参照元 hasEffectTo().

bool osl::state::SimpleState::hasEffectTo ( Piece  attackerPiece,
Position  targetPosition 
) const [inline]

attackerPiecetargetPositionĤɤ.

targetPosition϶Ǥɤ

引数:
attackerPiece 
targetPosition 

simpleState.h314 行で定義されています。

参照先 hasEffectFromTo(), osl::Position::isOnBoard(), osl::Piece::isPiece(), osl::Piece::position(), と osl::Piece::ptypeO().

参照元 lastMoveIsCheck().

template<Player P, bool setPieceP>
bool osl::state::SimpleState::lastMoveIsOpenCheck ( Position  from,
Position  kingPosition,
Piece attackPiece 
) const [inline]

μ꤬꤫ɤȽꤹ.

State(e.g., NumEffectState)ξϡ ñhasEffectByȤɤ.

Ĥζˤ벦ξattckPieceˤζ ʣζˤ벦ξPieceEMPTY() fromoffboardλ̵false֤

引数:
P(template) - ߤμ(ä, movealt(P))
setPiece(template) - attackPieceͤ뤫ɤ safeMove::isSafeMoveȶͭǤȤ¿

simpleState.h335 行で定義されています。

参照先 osl::Board_Table, osl::PtypeTable::getEffect(), getPieceAt(), osl::BoardTable::getShortOffset(), osl::hasEffect(), isEmptyBetween(), osl::Piece::isOnBoardByOwner(), osl::Position::isPieceStand(), osl::Ptype_Table, osl::Piece::ptypeO(), と osl::Offset::zero().

template<Player P>
bool osl::state::SimpleState::lastMoveIsCheck ( Move  last_move,
Piece attack_piece 
) const [inline]

μ꤬꤫ɤ.

Ĥζˤ벦ξattck_pieceˤζ ʣζˤ벦ξPieceEMPTY()

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

simpleState.h362 行で定義されています。

参照先 osl::alt(), osl::Piece::EMPTY(), osl::Move::from(), getPieceAt(), getPieceOf(), hasEffectTo(), osl::Move::isNormal(), osl::Move::player(), osl::Piece::position(), と osl::Move::to().

template<Player P, Ptype T, typename F>
void osl::state::SimpleState::forEachOnBoard ( F &  func  )  const [inline]

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

simpleState.h383 行で定義されています。

参照先 getPieceOf(), と osl::Piece::isOnBoardByOwner().

template<Player P, Ptype Type, class Action, Direction Dir>
void osl::state::SimpleState::forEachEffectOfPieceDir ( Position  ,
Action &  ,
Int2Type< false >   
) const [inline]

simpleState.h398 行で定義されています。

template<Player P, Ptype Type, class Action, Direction Dir>
void osl::state::SimpleState::forEachEffectOfPieceDir ( Position  piecePosition,
Action &  action,
Int2Type< true >   
) const [inline]

simpleState.h400 行で定義されています。

参照先 getPieceAt().

template<Player P, Ptype Type, class Action, Direction Dir>
void osl::state::SimpleState::forEachEffectOfPieceDir ( Position  piecePosition,
Action &  action 
) const [inline]

simpleState.h406 行で定義されています。

template<Player P, Ptype Type, class Action, Direction Dir>
void osl::state::SimpleState::forEachEffectOfPieceLongDir ( Position  ,
Action &  ,
Int2Type< false >   
) const [inline]

simpleState.h413 行で定義されています。

template<Player P, Ptype Type, class Action, Direction Dir>
void osl::state::SimpleState::forEachEffectOfPieceLongDir ( Position  piecePosition,
Action &  action,
Int2Type< true >   
) const [inline]

simpleState.h415 行で定義されています。

参照先 getPieceAt(), osl::Offset::intValue(), と osl::Piece::isEmpty().

template<Player P, Ptype Type, class Action, Direction Dir>
void osl::state::SimpleState::forEachEffectOfPieceLongDir ( Position  piecePosition,
Action &  action 
) const [inline]

simpleState.h426 行で定義されています。

template<Player P, Ptype Type, class Action>
void osl::state::SimpleState::forEachEffectOfPiece ( Position  piecePosition,
Action &  action 
) const [inline]

piecePositionˤˤä뤹٤Ƥposition (ޤ)ˤĤ action¹Ԥ

template<class Action>
void osl::state::SimpleState::forEachEffectOfPiece ( Piece  piece,
Action &  action 
) const [inline]

pieceˤä뤹٤Ƥposition(ޤˤĤ action¹Ԥ

template<Player P, class Action, bool checkDone, class PositionCheck>
void osl::state::SimpleState::forEachEffectWithCheck ( Position  pos,
Action &  action,
PositionCheck const &  positionCheck 
) const [inline]

引数:
P(template) - ¦
pos - оݤΥޥ
action - ¹Ԥ

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

simpleState.h452 行で定義されています。

template<Player P>
const Piece osl::state::SimpleState::hasEffectPiece ( Position  target  )  const [inline]

引数:
P(template) - ¦
target - ĤɸΥޥ

const Piece osl::state::SimpleState::hasEffectPiece ( Player  pl,
Position  target 
) const

引数:
pl - ¦
target - ĤɸΥޥ

template<Player P>
bool osl::state::SimpleState::hasEffectBy ( Position  pos  )  const [inline]

simpleState.h468 行で定義されています。

参照先 osl::Piece::EMPTY().

bool osl::state::SimpleState::hasEffectBy ( Player  player,
Position  pos 
) const [inline]

simpleState.h471 行で定義されています。

参照先 osl::BLACK.

template<Player P>
bool osl::state::SimpleState::hasEffectByWithRemove ( Position  target,
Position  removed 
) const [inline]

bool osl::state::SimpleState::hasEffectByWithRemove ( Player  player,
Position  target,
Position  removed 
) const [inline]

simpleState.h483 行で定義されています。

参照先 osl::BLACK.

template<Player P>
bool osl::state::SimpleState::hasEffectBy ( Position  target,
Piece attackerPiece 
) const [inline]

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

bool osl::state::SimpleState::hasEffectBy ( Player  pl,
Position  target,
Piece attackerPiece 
) const [inline]

simpleState.h500 行で定義されています。

参照先 osl::BLACK.

template<Player P>
bool osl::state::SimpleState::hasMultipleEffectBy ( Position  target  )  const [inline]

٤ƤɤȤǸƤ

bool osl::state::SimpleState::hasMultipleEffectBy ( Player  player,
Position  target 
) const

template<Player P, class Action>
void osl::state::SimpleState::forEachEffectNotBy ( Position  pos,
Piece  p,
Action &  action 
) const [inline]

simpleState.h515 行で定義されています。

template<Player P>
bool osl::state::SimpleState::hasEffectNotBy ( Piece  piece,
Position  target 
) const [inline]

引数:
P(template) - ¦
piece - ¦ζ, ζоݳȤ
target - оݤΥޥ

bool osl::state::SimpleState::hasEffectNotBy ( Player  player,
Piece  piece,
Position  target 
) const [inline]

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

simpleState.h533 行で定義されています。

参照先 osl::BLACK.

template<Player P, class Action>
void osl::state::SimpleState::forEachEffectPtypeDirection ( Position  pos,
Action &  action,
Direction  dir,
Ptype  ptype,
Int2Type< false >  canMove 
) const [inline]

simpleState.h542 行で定義されています。

template<Player P, class Action>
void osl::state::SimpleState::forEachEffectPtypeDirection ( Position  pos,
Action &  action,
Direction  dir,
Ptype  ptype,
Int2Type< true >  canMove 
) const [inline]

template<Player P, Ptype Type, Direction Dir, class Action>
void osl::state::SimpleState::forEachEffectPtypeDirection ( Position  pos,
Action &  action 
) const [inline]

simpleState.h555 行で定義されています。

参照先 osl::BOOST_STATIC_ASSERT(), と osl::isBasic().

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

template<Direction Dir, Player P>
bool osl::state::SimpleState::hasEffectDir ( Position  to  )  const [inline]

bool osl::state::SimpleState::dump (  )  const

dump: ʬ cerr ɽ롣abort ʤɤ˥ǥХå˻Ȥ

void osl::state::SimpleState::doSimpleMove ( Position  from,
Position  to,
int  promoteMask 
)

osl::state::PawnMaskStateで再定義されています。

void osl::state::SimpleState::doDropMove ( Position  to,
Ptype  ptype 
)

osl::state::PawnMaskStateで再定義されています。

void osl::state::SimpleState::doCaptureMove ( Position  from,
Position  to,
Piece  target,
int  promoteMask 
)

osl::state::PawnMaskStateで再定義されています。

const SimpleState osl::state::SimpleState::emulateCapture ( Piece  from,
Player  new_owner 
) const

from ɽ줿Piecenew_ownerλˤ̤.

const SimpleState osl::state::SimpleState::emulateHandPiece ( Player  from,
Player  to,
Ptype  ptype 
) const

from to ptypeλϤ̤.

const osl::state::SimpleState osl::state::SimpleState::rotate180 (  )  const

const osl::state::SimpleState osl::state::SimpleState::flipHorizontal (  )  const

template<class Action>
void osl::state::SimpleState::forEachEffectOfPiece ( Piece  piece,
Action &  action 
) const [inline]

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

template<osl::Player P, class Action, bool checkDone, class PositionCheck>
void osl::state::SimpleState::forEachEffectWithCheck ( Position  pos,
Action &  action,
PositionCheck const &  positionCheck 
) const [inline]

template<osl::Player P, osl::Ptype Type, class Action>
void osl::state::SimpleState::forEachEffectOfPiece ( Position  piecePosition,
Action &  action 
) const [inline]

simpleState.tcc226 行で定義されています。

template<osl::Player P>
const osl::Piece osl::state::SimpleState::hasEffectPiece ( Position  target  )  const [inline]

simpleState.cc57 行で定義されています。

参照先 osl::Piece::EMPTY(), と osl::Position::isOnBoard().

template<osl::Player P>
bool osl::state::SimpleState::hasMultipleEffectBy ( Position  target  )  const [inline]

simpleState.cc68 行で定義されています。

参照先 osl::Piece::EMPTY().

template<osl::Player P>
bool osl::state::SimpleState::hasEffectBy ( Position  target,
Piece attackerPiece 
) const [inline]

simpleState.cc84 行で定義されています。

参照先 osl::Piece::EMPTY().

template<osl::Player P>
bool osl::state::SimpleState::hasEffectByWithRemove ( Position  target,
Position  removed 
) const [inline]

simpleState.cc104 行で定義されています。

参照先 osl::Piece::EMPTY().

template<osl::Player P>
bool osl::state::SimpleState::hasEffectNotBy ( Piece  piece,
Position  target 
) const [inline]

simpleState.cc114 行で定義されています。

参照先 osl::Piece::EMPTY().

template<bool show_error>
bool osl::state::SimpleState::isAlmostValidMove ( Move  move  )  const [inline]


フレンドと関連する関数

friend class osl::apply_move::ApplyDoUndoSimpleMove< BLACK, SimpleState > [friend]

simpleState.h65 行で定義されています。

friend class osl::apply_move::ApplyDoUndoSimpleMove< WHITE, SimpleState > [friend]

simpleState.h66 行で定義されています。

friend class osl::apply_move::ApplyDoUndoCaptureMove< BLACK, SimpleState > [friend]

simpleState.h67 行で定義されています。

friend class osl::apply_move::ApplyDoUndoCaptureMove< WHITE, SimpleState > [friend]

simpleState.h68 行で定義されています。

friend class osl::apply_move::ApplyDoUndoDropMove< BLACK, SimpleState > [friend]

simpleState.h69 行で定義されています。

friend class osl::apply_move::ApplyDoUndoDropMove< WHITE, SimpleState > [friend]

simpleState.h70 行で定義されています。

friend class osl::apply_move::DoUndoMoveLockSimple< SimpleState > [friend]

simpleState.h71 行で定義されています。

friend class osl::apply_move::DoUndoMoveLockCapture< SimpleState > [friend]

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

friend class osl::apply_move::DoUndoMoveLockDrop< SimpleState > [friend]

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

std::ostream& operator<< ( std::ostream &  os,
const SimpleState state 
) [friend]

bool operator== ( const SimpleState st1,
const SimpleState st2 
) [friend]


変数

const bool osl::state::SimpleState::hasPawnMask = false [static]

osl::state::PawnMaskStateで再定義されています。

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

PieceMask osl::state::SimpleState::used_mask [protected]

simpleState.h54 行で定義されています。

参照元 usedMask().

CArray<PieceMask,2> osl::state::SimpleState::stand_mask [protected]

simpleState.h55 行で定義されています。

参照元 standMask().

CArray<Piece,Position::SIZE> osl::state::SimpleState::board [protected]

simpleState.h56 行で定義されています。

参照元 getPieceAt(), と setBoard().

ƤpieceϿƤ

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

参照元 getPieceOf(), と setPieceOf().

.

ĹŪˤϾä⤷ʤʬɬ

simpleState.h63 行で定義されています。

参照元 changeTurn(), getTurn(), isAlmostValidMove(), osl::state::operator==(), と setTurn().


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

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