追加利きを求める [詳細]
#include <additionalEffect.h>
Static Public メソッド | |
static bool | hasEffect (const NumEffectState &, Square target, Player attack) |
target に attack の追加利きが一つでもあるか. 相手の影利きが先にある場合は対象としない. | |
static bool | hasEffectStable (const NumEffectState &, Square target, Player attack) |
static int | count2 (const NumEffectState &, Square target, Player attack) |
target に attack の追加利きを二つまで数える. | |
static void | find (const NumEffectState &, Square target, PieceVector &black, PieceVector &white) |
target に対する追加利きのある Piece を black, white に求める. | |
static void | count (const NumEffectState &, Square target, int &black, int &white) |
static int | count (const NumEffectState &state, Player pl, Square target) |
Static Private メソッド | |
static void | find (const NumEffectState &, Square target, const PieceVector &direct_effects, PieceVector &black, PieceVector &white) |
template<int count_max> | |
static int | count (const NumEffectState &, Square target, Player attack) |
追加利きを求める
additionalEffect.h の 12 行で定義されています。
int osl::effect_util::AdditionalEffect::count | ( | const NumEffectState & | state, | |
Square | target, | |||
Player | attack | |||
) | [static, private] |
static int osl::effect_util::AdditionalEffect::count | ( | const NumEffectState & | state, | |
Player | pl, | |||
Square | target | |||
) | [inline, static] |
additionalEffect.h の 44 行で定義されています。
参照先 osl::BLACK, と count().
void osl::effect_util::AdditionalEffect::count | ( | const NumEffectState & | state, | |
Square | target, | |||
int & | black, | |||
int & | white | |||
) | [static] |
additionalEffect.cc の 96 行で定義されています。
参照先 find(), と osl::FixedCapacityVector< T, Capacity >::size().
int osl::effect_util::AdditionalEffect::count2 | ( | const NumEffectState & | state, | |
Square | target, | |||
Player | attack | |||
) | [static] |
void osl::effect_util::AdditionalEffect::find | ( | const NumEffectState & | state, | |
Square | target, | |||
const PieceVector & | direct_effects, | |||
PieceVector & | black, | |||
PieceVector & | white | |||
) | [static, private] |
additionalEffect.cc の 50 行で定義されています。
参照先 osl::Board_Table, osl::PtypeTable::getEffect(), osl::BoardTable::getShortOffsetNotKnight(), osl::EffectContent::hasEffect(), osl::Piece::isPiece(), osl::SimpleState::nextPiece(), osl::Piece::owner(), osl::Ptype_Table, osl::Piece::ptypeO(), osl::FixedCapacityVector< T, Capacity >::push_back(), osl::Piece::square(), と osl::Offset::zero().
void osl::effect_util::AdditionalEffect::find | ( | const NumEffectState & | state, | |
Square | target, | |||
PieceVector & | black, | |||
PieceVector & | white | |||
) | [static] |
target に対する追加利きのある Piece を black, white に求める.
[*] +KI -HI +HI の場合,-HIも+HIもカウント.
additionalEffect.cc の 83 行で定義されています。
参照先 osl::BLACK, osl::FixedCapacityVector< T, Capacity >::clear(), find(), osl::NumEffectState::findEffect(), と osl::WHITE.
bool osl::effect_util::AdditionalEffect::hasEffect | ( | const NumEffectState & | state, | |
Square | target, | |||
Player | attack | |||
) | [static] |
target に attack の追加利きが一つでもあるか. 相手の影利きが先にある場合は対象としない.
additionalEffect.cc の 5 行で定義されています。
参照先 osl::BLACK, osl::Board_Table, osl::PieceMask::clearBit(), osl::NumEffectState::effectSetAt(), osl::BoardTable::getShort8(), osl::Piece::isEmptyNum(), osl::KNIGHT, osl::NumEffectState::longEffectNumTable(), osl::Piece::owner(), osl::SimpleState::pieceOf(), osl::NumEffectState::piecesOnBoard(), osl::NumEffectState::promotedPieces(), と osl::Piece::square().
参照元 osl::checkmate::ProofNumberTable::countLiberty(), osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDir(), と osl::checkmate::King8Info::moveCandidateDir().
bool osl::effect_util::AdditionalEffect::hasEffectStable | ( | const NumEffectState & | state, | |
Square | target, | |||
Player | attack | |||
) | [static] |
additionalEffect.cc の 36 行で定義されています。