構成 | |
class | GoldKingAction |
promote不可能な足の短い駒による利きの生成用 Functor [詳細] | |
class | ShortPieceAction |
promote可能な足の短い駒による利きの生成用 Functor [詳細] | |
class | LongPieceAction |
足の長い駒による利きの生成用 Functor [詳細] | |
関数 | |
template<Player P, Ptype T, class Action , bool isPromote> | |
void | generateMove (const NumEffectState &state, Position from, Position target, NearMask nearMask, Action &action) |
template<Player P, Ptype T, class Action > | |
void | generateLongMoveDirectNoPromote (const NumEffectState &state, Position from, Position target, NearMask nearMask, Action &action) |
template<Player P, Ptype T, class Action > | |
void | generateLongMoveDirectCanPromote (const NumEffectState &state, Position from, Position target, NearMask nearMask, Action &action) |
template<bool isAttackToKing> | |
bool | isEmptyOrAdditional (const NumEffectState &state, Position from, Position to, int &count) |
template<Player P, Ptype T, class Action , bool canPromote, bool isAttackToKing> | |
void | generateLongMove (const NumEffectState &state, Position from, Position target, NearMask nearMask, Action &action, int piece_num) |
template<Player P, Ptype T, class Action , bool isLong, bool isAttackToKing> | |
void | generateDrop (const NumEffectState &state, Position target, NearMask nearMask, Action &action) |
void osl::move_generator::without_effect::generateDrop | ( | const NumEffectState & | state, | |
Position | target, | |||
NearMask | nearMask, | |||
Action & | action | |||
) | [inline] |
二歩の禁止
addEffect_.tcc の 293 行で定義されています。
参照先 osl::Board_Table, osl::Piece::isEdge(), osl::isLong(), と osl::PAWN.
void osl::move_generator::without_effect::generateLongMove | ( | const NumEffectState & | state, | |
Position | from, | |||
Position | target, | |||
NearMask | nearMask, | |||
Action & | action, | |||
int | piece_num | |||
) | [inline] |
longのofsetがある
同じlineでも可能性はある
open attack
capture attack
LANCEの場合は直前以外は成ってはダメ
同じlineでない場合 8近傍に移動しての王手
一方向1position
中間地点が範囲外のこともある
一方向2position
一方向3position
addEffect_.tcc の 106 行で定義されています。
参照先 osl::move_generator::Add_Effect_Table, osl::alt(), osl::BISHOP, osl::BLACK, osl::Offset::blackOffset(), osl::Board_Table, osl::Piece::canMoveOn(), osl::Position::canPromote(), osl::canPromote(), osl::PtypeTable::getEffect(), osl::BoardTable::getLongDirection(), osl::move_generator::AddEffectTable::getNearMaskLong(), osl::move_generator::AddEffectTable::getNearMaskPBISHOP(), osl::move_generator::AddEffectTable::getNearMaskPROOK(), osl::move_generator::AddEffectTable::getOffsetLong(), osl::move_generator::AddEffectTable::getOffsetPBISHOP(), osl::move_generator::AddEffectTable::getOffsetPROOK(), osl::BoardTable::getShortOffset(), osl::EffectContent::hasEffect(), osl::EffectContent::hasUnblockableEffect(), osl::isBasic(), osl::Piece::isEdge(), osl::Piece::isEmpty(), osl::Piece::isOnBoardByOwner(), osl::LANCE, osl::longToShort(), osl::newPtypeO(), osl::EffectContent::offset(), osl::PBISHOP, osl::PROOK, osl::Ptype_Table, osl::ROOK, osl::unpromote(), と osl::Offset::zero().
void osl::move_generator::without_effect::generateLongMoveDirectCanPromote | ( | const NumEffectState & | state, | |
Position | from, | |||
Position | target, | |||
NearMask | nearMask, | |||
Action & | action | |||
) | [inline] |
void osl::move_generator::without_effect::generateLongMoveDirectNoPromote | ( | const NumEffectState & | state, | |
Position | from, | |||
Position | target, | |||
NearMask | nearMask, | |||
Action & | action | |||
) | [inline] |
間がすべて空白
addEffect_.tcc の 44 行で定義されています。
参照先 osl::move_generator::Add_Effect_Table, osl::Board_Table, と osl::move_generator::AddEffectTable::getNearMask().
void osl::move_generator::without_effect::generateMove | ( | const NumEffectState & | state, | |
Position | from, | |||
Position | target, | |||
NearMask | nearMask, | |||
Action & | action | |||
) | [inline] |
P(template) | - 攻撃側のプレイヤー | |
T(template) | - 攻撃側の駒の種類 | |
state | - 局面 | |
from | - 攻撃しようとする駒の位置 | |
target | - 攻撃しようとするマス すでに攻撃しようとするマスに利きがある場合は何もしない? 当然ながら,自分で動いてもとの位置に利きをつけるなどは考えない |
addEffect_.tcc の 25 行で定義されています。
参照先 osl::move_generator::Add_Effect_Table, osl::Board_Table, osl::Position::canPromote(), osl::move_generator::AddEffectTable::getNearMask(), と osl::move_generator::AddEffectTable::getNearMaskWithPromote().
bool osl::move_generator::without_effect::isEmptyOrAdditional | ( | const NumEffectState & | state, | |
Position | from, | |||
Position | to, | |||
int & | count | |||
) | [inline] |
addEffect_.tcc の 88 行で定義されています。
参照先 osl::Board_Table, osl::BoardTable::getShortOffset(), と osl::Offset::zero().