#include <numSimpleEffect.h>
Public 型 | |
typedef NumSimpleEffect< State > | effect_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) |
numSimpleEffect.h の 198 行で定義されています。
typedef NumSimpleEffect<State> osl::effect::NumSimpleEffect< State >::effect_state_t |
typedef NumSimpleEffect osl::effect::NumSimpleEffect< State >::state_t [private] |
numSimpleEffect.h の 209 行で定義されています。
osl::effect::NumSimpleEffect< State >::NumSimpleEffect | ( | const state::SimpleState & | st | ) | [explicit] |
osl::effect::NumSimpleEffect< State >::~NumSimpleEffect | ( | ) | [inline] |
numSimpleEffect.tcc の 186 行で定義されています。
PieceMask& osl::effect::NumSimpleEffect< State >::getOnBoardMask | ( | Player | p | ) | [inline, private] |
numSimpleEffect.h の 216 行で定義されています。
参照元 osl::effect::NumSimpleEffect< PawnMaskState >::countKingEffect(), osl::effect::NumSimpleEffect< PawnMaskState >::effectPtype(), osl::effect::NumSimpleEffect< PawnMaskState >::forEachEffect(), osl::effect::NumSimpleEffect< PawnMaskState >::forEachEffectNotBy(), osl::effect::NumSimpleEffect< PawnMaskState >::forEachEffectPtype(), osl::effect::NumSimpleEffect< PawnMaskState >::forEachOnBoard(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectBy(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectByPtype(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectDir(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectLong(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectNotBy(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectPiece(), と osl::effect::NumSimpleEffect< PawnMaskState >::isOnBoardNum().
const PieceMask& osl::effect::NumSimpleEffect< State >::getOnBoardMask | ( | Player | p | ) | const [inline] |
numSimpleEffect.h の 220 行で定義されています。
bool osl::effect::NumSimpleEffect< State >::isOnBoardNum | ( | int | num | ) | const [inline] |
numSimpleEffect.h の 223 行で定義されています。
Piece osl::effect::NumSimpleEffect< State >::getPieceOf | ( | int | num | ) | const [inline] |
numSimpleEffect.h の 229 行で定義されています。
参照元 osl::effect::NumSimpleEffect< PawnMaskState >::effectPtype(), osl::effect::NumSimpleEffect< PawnMaskState >::forEachEffect(), osl::effect::NumSimpleEffect< PawnMaskState >::forEachEffectNotBy(), osl::effect::NumSimpleEffect< PawnMaskState >::forEachEffectPtype(), osl::effect::NumSimpleEffect< PawnMaskState >::forEachOnBoard(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectBy(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectDir(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectPiece(), と osl::effect::NumSimpleEffect< PawnMaskState >::lastMoveIsCheck().
void osl::effect::NumSimpleEffect< State >::forEachOnBoard | ( | F & | func | ) | const [inline] |
NumBitmapEffect osl::effect::NumSimpleEffect< State >::getEffect | ( | Position | pos | ) | const [inline] |
numSimpleEffect.h の 252 行で定義されています。
参照元 osl::effect::NumSimpleEffect< PawnMaskState >::countEffect(), osl::effect::NumSimpleEffect< PawnMaskState >::countKingEffect(), osl::effect::NumSimpleEffect< PawnMaskState >::effectPtype(), osl::effect::NumSimpleEffect< PawnMaskState >::forEachEffect(), osl::effect::NumSimpleEffect< PawnMaskState >::forEachEffectNotBy(), osl::effect::NumSimpleEffect< PawnMaskState >::forEachEffectPtype(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectBy(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectByPiece(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectByPtype(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectDir(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectLong(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectNotBy(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectPiece(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectTo(), と osl::effect::NumSimpleEffect< PawnMaskState >::hasMultipleEffectBy().
bool osl::effect::NumSimpleEffect< State >::isConsistent | ( | bool | showError | ) | const [inline] |
void osl::effect::NumSimpleEffect< State >::doSimpleMove | ( | Position | from, | |
Position | to, | |||
int | promoteMask | |||
) | [inline] |
numSimpleEffect.tcc の 192 行で定義されています。
参照先 osl::BLACK, osl::PtypeTraits< PAWN >::indexLimit, と osl::newPtypeO().
void osl::effect::NumSimpleEffect< State >::doDropMove | ( | Position | to, | |
Ptype | ptype | |||
) | [inline] |
void osl::effect::NumSimpleEffect< State >::doCaptureMove | ( | Position | from, | |
Position | to, | |||
Piece | target, | |||
int | promoteMask | |||
) | [inline] |
numSimpleEffect.tcc の 212 行で定義されています。
参照先 osl::alt(), osl::BLACK, osl::PtypeTraits< PAWN >::indexLimit, osl::newPtypeO(), osl::PAWN, と osl::Piece::ptype().
bool osl::effect::NumSimpleEffect< State >::hasEffectDir | ( | Position | to | ) | const [inline] |
bool osl::effect::NumSimpleEffect< State >::hasEffectLong | ( | Player | P, | |
Position | to | |||
) | const [inline] |
bool osl::effect::NumSimpleEffect< State >::hasEffectBy | ( | Player | player, | |
Position | target | |||
) | const [inline] |
оݤȤޥˤץ쥤䡼뤫ɤ.
player | ¦ | |
target | оݤΥޥ |
numSimpleEffect.h の 311 行で定義されています。
参照元 osl::checkmate::ConfirmNoEscape< State, Attacker >::operator()().
bool osl::effect::NumSimpleEffect< State >::hasEffectNotBy | ( | Player | player, | |
Piece | piece, | |||
Position | target | |||
) | const [inline] |
bool osl::effect::NumSimpleEffect< State >::hasMultipleEffectBy | ( | Player | player, | |
Position | target | |||
) | const [inline] |
bool osl::effect::NumSimpleEffect< State >::hasEffectByPiece | ( | Piece | attack, | |
Position | target | |||
) | const [inline] |
attack target Ĥ
target | оݤΥޥ |
numSimpleEffect.h の 350 行で定義されています。
参照元 osl::effect::NumSimpleEffect< State >::isAlmostValidMove().
bool osl::effect::NumSimpleEffect< State >::hasEffectByPtype | ( | Player | attack, | |
Position | target | |||
) | const [inline] |
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.h の 370 行で定義されています。
int osl::effect::NumSimpleEffect< State >::countEffect2 | ( | Player | player, | |
Position | target | |||
) | const [inline] |
int osl::effect::NumSimpleEffect< State >::countEffect | ( | Player | player, | |
Position | target | |||
) | const [inline] |
ο.
targetפϤ߽ФƤϤʤ
numSimpleEffect.h の 394 行で定義されています。
参照元 osl::effect::NumSimpleEffect< PawnMaskState >::countEffect2().
int osl::effect::NumSimpleEffect< State >::countEffect | ( | Player | player, | |
Position | target, | |||
PieceMask | pins | |||
) | const [inline] |
int osl::effect::NumSimpleEffect< State >::countKingEffect | ( | Player | P, | |
PieceMask | pieces | |||
) | const [inline, private] |
numSimpleEffect.h の 413 行で定義されています。
参照元 osl::effect::NumSimpleEffect< PawnMaskState >::countKingEffect().
int osl::effect::NumSimpleEffect< State >::countKingEffect | ( | Player | P, | |
Position | target | |||
) | const [inline] |
int osl::effect::NumSimpleEffect< State >::countKingEffect | ( | Player | P, | |
Position | target, | |||
PieceMask | dont_use | |||
) | const [inline] |
numSimpleEffect.h の 431 行で定義されています。
Piece osl::effect::NumSimpleEffect< State >::hasEffectPiece | ( | Position | p | ) | const [inline] |
Piece osl::effect::NumSimpleEffect< State >::hasEffectPiece | ( | Player | pl, | |
Position | pos | |||
) | const [inline] |
numSimpleEffect.h の 477 行で定義されています。
void osl::effect::NumSimpleEffect< State >::forEachEffectPtype | ( | Position | pos, | |
Action & | action | |||
) | const [inline] |
void osl::effect::NumSimpleEffect< State >::forEachEffect | ( | Position | pos, | |
Action & | action | |||
) | const [inline] |
void osl::effect::NumSimpleEffect< State >::forEachEffect | ( | Position | pos, | |
Action & | action, | |||
const PieceMask & | pin | |||
) | const [inline] |
pos ˤ move action member ƤӽФ.
pin | ̵뤹 | |
action | Ȥ AlwaysMoveAction |
numSimpleEffect.h の 535 行で定義されています。
void osl::effect::NumSimpleEffect< State >::forEachEffectNotBy | ( | Position | pos, | |
Piece | piece, | |||
Action & | action | |||
) | const [inline] |
pos ˤ move action member ƤӽФ
action | Ȥ AlwayMoveAction | |
piece | ʳζȤ |
numSimpleEffect.h の 568 行で定義されています。
void osl::effect::NumSimpleEffect< State >::forSortedEffect | ( | Position | pos, | |
Action & | action | |||
) | const [inline] |
®ٽŻǤϤʤֽŻ pos ˤ move action member ƤӽФ
action | Ȥ AlwayMoveAction |
numSimpleEffect.h の 722 行で定義されています。
bool osl::effect::NumSimpleEffect< State >::hasEffectTo | ( | Piece | attackerPiece, | |
Position | targetPosition | |||
) | const [inline] |
attackerPiecetargetPositionĤɤ.
targetPosition϶Ǥɤ
attackerPiece | ||
targetPosition |
numSimpleEffect.h の 608 行で定義されています。
bool osl::effect::NumSimpleEffect< State >::hasEffectBy | ( | Position | target | ) | const [inline] |
bool osl::effect::NumSimpleEffect< State >::hasEffectBy | ( | Player | P, | |
Position | target, | |||
Piece & | attackerPiece | |||
) | const [inline] |
numSimpleEffect.h の 627 行で定義されています。
bool osl::effect::NumSimpleEffect< State >::hasEffectBy | ( | Position | target, | |
Piece & | attackerPiece | |||
) | const [inline] |
P(template) | - ĤƤ¦Υץ쥤 | |
target | - Ĥ줿 | |
attackerPiece | - multiple attackξPieceEMPTY() ǤʤʤĤƤ֤ |
numSimpleEffect.h の 641 行で定義されています。
bool osl::effect::NumSimpleEffect< State >::lastMoveIsCheck | ( | Move | , | |
Piece & | attack_piece | |||
) | const [inline] |
μ꤬꤫ɤ Ĥζˤ벦ξattckPieceˤζ ʣζˤ벦ξPieceEMPTY()
P(template) | - ߤμ(ä, movealt(P)) |
numSimpleEffect.h の 686 行で定義されています。
Player osl::effect::NumSimpleEffect< State >::getTurn | ( | ) | const [inline] |
numSimpleEffect.h の 691 行で定義されています。
参照元 osl::ntesuki::NtesukiSimulationSearcher::attackForDisproof(), osl::ntesuki::NtesukiSimulationSearcher::attackForProof(), osl::ntesuki::NtesukiSimulationSearcher::defenseForDisproof(), osl::ntesuki::NtesukiSimulationSearcher::defenseForProof(), osl::effect::NumSimpleEffect< State >::isAlmostValidMove(), osl::ntesuki::NtesukiSimulationSearcher::startFromAttackProof(), osl::ntesuki::NtesukiSimulationSearcher::startFromDefenseDisproof(), と osl::ntesuki::NtesukiSimulationSearcher::startFromDefenseProof().
Piece osl::effect::NumSimpleEffect< State >::getPieceAt | ( | Position | pos | ) | const [inline] |
bool osl::effect::NumSimpleEffect< State >::hasPieceOnStand | ( | ) | const [inline] |
bool osl::effect::NumSimpleEffect< State >::hasPieceOnStand | ( | Player | pl, | |
Ptype | ptype | |||
) | const [inline] |
numSimpleEffect.h の 701 行で定義されています。
bool osl::effect::NumSimpleEffect< State >::isValidMoveByRule | ( | Move | move, | |
bool | showError | |||
) | const [inline] |
numSimpleEffect.tcc の 285 行で定義されています。
参照元 osl::effect::NumSimpleEffect< State >::isAlmostValidMove().
bool osl::effect::NumSimpleEffect< State >::isAlmostValidMove | ( | Move | move | ) | const [inline] |
ˡ꤫ɤñ˸롥̤˰¸åΤߡ 롼ؤʤǤǽϡisValidMove Ѥ롥
PtemplateˤǤȾ®ʤꤽ ̤˰¸븡Ǥ⡤̤ȴ䲦ɤǤ뤫 ꡤͤɤϸʤ
showError(template) | - false֤ˤϲɽ. | |
move | - |
numSimpleEffect.tcc の 297 行で定義されています。
参照先 osl::Move::capturePtype(), osl::Move::from(), osl::effect::NumSimpleEffect< State >::getPieceAt(), osl::effect::NumSimpleEffect< State >::getTurn(), osl::effect::NumSimpleEffect< State >::hasEffectByPiece(), osl::effect::NumSimpleEffect< State >::hasPieceOnStand(), osl::Piece::isEmpty(), osl::move_generator::isPawnMaskSet(), osl::Position::isPieceStand(), osl::Move::isPromote(), osl::Piece::isPromotedNotKingGold(), osl::Move::isValid(), osl::effect::NumSimpleEffect< State >::isValidMoveByRule(), osl::Piece::owner(), osl::PAWN, osl::Move::player(), osl::Piece::ptype(), osl::Move::ptype(), osl::Move::to(), osl::unpromote(), と osl::Position::x().
bool osl::effect::NumSimpleEffect< State >::isAlmostValidMove | ( | Move | move, | |
bool | show_error = true | |||
) | const [inline] |
numSimpleEffect.tcc の 381 行で定義されています。
friend class apply_move::ApplyDoUndoSimpleMove< BLACK, NumSimpleEffect > [friend] |
numSimpleEffect.h の 210 行で定義されています。
friend class apply_move::ApplyDoUndoCaptureMove< BLACK, NumSimpleEffect > [friend] |
numSimpleEffect.h の 211 行で定義されています。
friend class apply_move::ApplyDoUndoDropMove< BLACK, NumSimpleEffect > [friend] |
numSimpleEffect.h の 212 行で定義されています。
friend class apply_move::ApplyDoUndoSimpleMove< WHITE, NumSimpleEffect > [friend] |
numSimpleEffect.h の 213 行で定義されています。
friend class apply_move::ApplyDoUndoCaptureMove< WHITE, NumSimpleEffect > [friend] |
numSimpleEffect.h の 214 行で定義されています。
friend class apply_move::ApplyDoUndoDropMove< WHITE, NumSimpleEffect > [friend] |
numSimpleEffect.h の 215 行で定義されています。
bool operator== | ( | const NumSimpleEffect< State > & | st1, | |
const NumSimpleEffect< State > & | st2 | |||
) | [friend] |
NumSimpleEffectTable<typename State::simple_state_t> osl::effect::NumSimpleEffect< State >::effects [private] |
CArray<PieceMask,2> osl::effect::NumSimpleEffect< State >::onBoardMask [private] |
numSimpleEffect.h の 205 行で定義されています。
参照元 osl::effect::NumSimpleEffect< PawnMaskState >::effectPtype(), osl::effect::NumSimpleEffect< PawnMaskState >::forEachEffectPtype(), osl::effect::NumSimpleEffect< PawnMaskState >::getOnBoardMask(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectByPtype(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectDir(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectLong(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectNotBy(), osl::effect::NumSimpleEffect< PawnMaskState >::hasEffectPiece(), と osl::effect::operator==().