ネームスペース osl::move_generator::detail

関数

template<osl::Player P, class Action >
void generateMovePiecePtypeMask (const NumEffectState &state, Piece p, Position to, Piece toP, Action &action, unsigned int ptypeMask)
 マスtoに移動可能な駒pを移動する手を生成する. ptypeMaskで指定されたptypeになる場合以外は手を生成しない.
template<osl::Player P, class Action >
void generateMoveToPtypeMaskWithPieceMask (const NumEffectState &state, Position to, Piece toP, Action &action, unsigned int ptypeMask, PieceMask pieceMask)
 あるマスに利きを持つすべての駒の中で, ptypeMaskで指定されたptypeになる場合は移動する手を生成する
template<osl::Player P, class Action >
void generateMoveToPtypeMask (const NumEffectState &state, Position to, Piece toP, Action &action, unsigned int ptypeMask)
template<osl::Player P>
bool blockingU (const NumEffectState &state, Position pos)
 敵玉の前に歩を置いた場合に遮った利きで敵玉にlibertyが生まれるかどうか?
template<osl::Player P, int DirType, class Action >
void generateDir (const NumEffectState &state, Position target, Action &action, bool &hasPawnCheckmate, Offset dirOffset, Direction Dir, Direction primDir, int ptypeMaskNotKing)
 int DirType : 0 - U 1 - LRD 2 - UL,UR,DL,DR dirOffset = DirectionPlayerTraits<Dir,P>::offset()
template<osl::Player P, int DirType, class Action , Direction Dir>
void generateDir (const NumEffectState &state, Position target, Action &action, bool &hasPawnCheckmate)
template<osl::Player P, int DirType, class Action >
void generateDirNotKing (const NumEffectState &state, Position target, Action &action, CArray< unsigned char, 8 > &pieceMobility, int &spaces, PieceMask const &notPieceMask, Offset dirOffset, Direction Dir, Direction primDir, int ptypeMask, Direction dirByBlack)
 int DirType : 0 - U 1 - LRD 2 - UL,UR,DL,DR dirOffset = DirectionPlayerTraits<Dir,P>::offset()
template<osl::Player P, int DirType, class Action , Direction Dir>
void generateDirNotKing (const NumEffectState &state, Position target, Action &action, CArray< unsigned char, 8 > &pieceMobility, int &spaces, PieceMask const &notPieceMask)
template<osl::Player P, osl::Direction Dir, class Action , bool hasKnight>
void generateKnightDir (const NumEffectState &state, Position target, Action &action)
template<osl::Player P, class Action >
void generateKnightAll (const NumEffectState &state, Position target, Action &action)
template<osl::Player P, class Action >
void generateDrop (Position target, Action &action, int spaceMask, osl::Ptype T, int dirMask, Offset offset)
template<osl::Player P, class Action , Direction Dir>
void generateDropDir (Position target, Action &action, int spaceMask, osl::Ptype T)
template<Player P, class Action , bool mustCareSilver>
void generateOpenOrCapture (const NumEffectState &state, Position target, Piece p, int num, Action &action)
template<osl::Player P, class Action >
void generateRookLongMove (const NumEffectState &state, Position target, Action &action)
template<osl::Player P, class Action >
void generateRookLongMoveNotKing (const NumEffectState &state, Position target, Action &action, CArray< unsigned char, 8 > const &pieceMobility)
template<Player P, Ptype T, class Action >
void generateBishopLongMove (const NumEffectState &state, Position target, Action &action, Piece p, int num)
template<osl::Player P, Ptype T, class Action >
void generateBishopLongMoveNotKing (const NumEffectState &state, Position target, Action &action, CArray< unsigned char, 8 > const &pieceMobility, Piece p, int num)
template<Player P, class Action >
void generateDropGold (const NumEffectState &state, Position target, Action &action, int spaces)
template<Player P, class Action >
void generateDropSilver (const NumEffectState &state, Position target, Action &action, int spaces)
template<Player P, class Action , bool allEmpty>
void generateDropBishop (const NumEffectState &state, Position target, Action &action, Position ul, Position dr, Position ur, Position dl)
 allEmpty - shadow attackを生成する場合は,posがemptyでないこともある.
template<Player P, class Action , bool allEmpty>
void generateDropRook (const NumEffectState &state, Position target, Action &action, Position l, Position r, Position d, Position u)
template<osl::Player P, class Action >
void generateKing (const NumEffectState &state, Position target, Action &action, bool &hasPawnCheckmate)
template<osl::Player P, class Action >
void generateNotKing (const NumEffectState &state, Position target, Action &action)

関数

template<osl::Player P>
bool osl::move_generator::detail::blockingU ( const NumEffectState &  state,
Position  pos 
) [inline]

敵玉の前に歩を置いた場合に遮った利きで敵玉にlibertyが生まれるかどうか?

addEffectWithEffect.tcc92 行で定義されています。

参照先 osl::BLACK, osl::Board_Table, osl::Piece::canMoveOn(), osl::BoardTable::getShortOffset(), と osl::Position::y().

template<Player P, Ptype T, class Action >
void osl::move_generator::detail::generateBishopLongMove ( const NumEffectState &  state,
Position  target,
Action &  action,
Piece  p,
int  num 
) [inline]
template<osl::Player P, Ptype T, class Action >
void osl::move_generator::detail::generateBishopLongMoveNotKing ( const NumEffectState &  state,
Position  target,
Action &  action,
CArray< unsigned char, 8 > const &  pieceMobility,
Piece  p,
int  num 
) [inline]
template<osl::Player P, int DirType, class Action , Direction Dir>
void osl::move_generator::detail::generateDir ( const NumEffectState &  state,
Position  target,
Action &  action,
bool &  hasPawnCheckmate 
) [inline]

addEffectWithEffect.tcc183 行で定義されています。

template<osl::Player P, int DirType, class Action >
void osl::move_generator::detail::generateDir ( const NumEffectState &  state,
Position  target,
Action &  action,
bool &  hasPawnCheckmate,
Offset  dirOffset,
Direction  Dir,
Direction  primDir,
int  ptypeMaskNotKing 
) [inline]

int DirType : 0 - U 1 - LRD 2 - UL,UR,DL,DR dirOffset = DirectionPlayerTraits<Dir,P>::offset()

addEffectWithEffect.tcc120 行で定義されています。

参照先 osl::Piece::EMPTY(), osl::Piece::isEmpty(), osl::Position::isOnBoard(), osl::Piece::isOnBoardByOwner(), osl::LANCE, osl::PAWN, osl::Piece::position(), と osl::Position::x().

template<osl::Player P, int DirType, class Action , Direction Dir>
void osl::move_generator::detail::generateDirNotKing ( const NumEffectState &  state,
Position  target,
Action &  action,
CArray< unsigned char, 8 > &  pieceMobility,
int &  spaces,
PieceMask const &  notPieceMask 
) [inline]

addEffectWithEffect.tcc306 行で定義されています。

template<osl::Player P, int DirType, class Action >
void osl::move_generator::detail::generateDirNotKing ( const NumEffectState &  state,
Position  target,
Action &  action,
CArray< unsigned char, 8 > &  pieceMobility,
int &  spaces,
PieceMask const &  notPieceMask,
Offset  dirOffset,
Direction  Dir,
Direction  primDir,
int  ptypeMask,
Direction  dirByBlack 
) [inline]

int DirType : 0 - U 1 - LRD 2 - UL,UR,DL,DR dirOffset = DirectionPlayerTraits<Dir,P>::offset()

addEffectWithEffect.tcc195 行で定義されています。

参照先 osl::BISHOP, osl::Piece::canMoveOn(), osl::inverse(), osl::Piece::isEmpty(), osl::Position::isOnBoard(), osl::Piece::isOnBoardByOwner(), osl::LANCE, osl::PAWN, osl::Piece::position(), osl::ROOK, osl::Position::uintValue(), と osl::Position::x().

template<osl::Player P, class Action >
void osl::move_generator::detail::generateDrop ( Position  target,
Action &  action,
int  spaceMask,
osl::Ptype  T,
int  dirMask,
Offset  offset 
) [inline]

addEffectWithEffect.tcc345 行で定義されています。

template<Player P, class Action , bool allEmpty>
void osl::move_generator::detail::generateDropBishop ( const NumEffectState &  state,
Position  target,
Action &  action,
Position  ul,
Position  dr,
Position  ur,
Position  dl 
) [inline]

allEmpty - shadow attackを生成する場合は,posがemptyでないこともある.

addEffectWithEffect.tcc827 行で定義されています。

参照先 osl::BISHOP.

template<osl::Player P, class Action , Direction Dir>
void osl::move_generator::detail::generateDropDir ( Position  target,
Action &  action,
int  spaceMask,
osl::Ptype  T 
) [inline]

addEffectWithEffect.tcc353 行で定義されています。

template<Player P, class Action >
void osl::move_generator::detail::generateDropGold ( const NumEffectState &  state,
Position  target,
Action &  action,
int  spaces 
) [inline]

addEffectWithEffect.tcc798 行で定義されています。

参照先 osl::D, osl::GOLD, osl::L, osl::R, osl::U, osl::UL, と osl::UR.

template<Player P, class Action , bool allEmpty>
void osl::move_generator::detail::generateDropRook ( const NumEffectState &  state,
Position  target,
Action &  action,
Position  l,
Position  r,
Position  d,
Position  u 
) [inline]

addEffectWithEffect.tcc848 行で定義されています。

参照先 osl::ROOK.

template<Player P, class Action >
void osl::move_generator::detail::generateDropSilver ( const NumEffectState &  state,
Position  target,
Action &  action,
int  spaces 
) [inline]

addEffectWithEffect.tcc811 行で定義されています。

参照先 osl::DL, osl::DR, osl::SILVER, osl::U, osl::UL, と osl::UR.

template<osl::Player P, class Action >
void osl::move_generator::detail::generateKing ( const NumEffectState &  state,
Position  target,
Action &  action,
bool &  hasPawnCheckmate 
) [inline]
template<osl::Player P, class Action >
void osl::move_generator::detail::generateKnightAll ( const NumEffectState &  state,
Position  target,
Action &  action 
) [inline]

addEffectWithEffect.tcc333 行で定義されています。

参照先 osl::KNIGHT.

template<osl::Player P, osl::Direction Dir, class Action , bool hasKnight>
void osl::move_generator::detail::generateKnightDir ( const NumEffectState &  state,
Position  target,
Action &  action 
) [inline]
template<osl::Player P, class Action >
void osl::move_generator::detail::generateMovePiecePtypeMask ( const NumEffectState &  state,
Piece  p,
Position  to,
Piece  toP,
Action &  action,
unsigned int  ptypeMask 
) [inline]

マスtoに移動可能な駒pを移動する手を生成する. ptypeMaskで指定されたptypeになる場合以外は手を生成しない.

引数:
state - 盤面
p - 利きを持つコマ
to - 目的のマス
toP - 目的のマスに現在ある駒(又は空白)
action - 手生成のaction(典型的にはstoreかfilterつきstore)
ptypeMask - 移動後の駒のptypeに対応するbitが1なら手を生成する should promoteは?

addEffectWithEffect.tcc30 行で定義されています。

参照先 osl::Position::canPromote(), osl::canPromote(), osl::Piece::isOnBoardByOwner(), osl::Piece::position(), osl::promote(), と osl::Piece::ptype().

template<osl::Player P, class Action >
void osl::move_generator::detail::generateMoveToPtypeMask ( const NumEffectState &  state,
Position  to,
Piece  toP,
Action &  action,
unsigned int  ptypeMask 
) [inline]

addEffectWithEffect.tcc79 行で定義されています。

template<osl::Player P, class Action >
void osl::move_generator::detail::generateMoveToPtypeMaskWithPieceMask ( const NumEffectState &  state,
Position  to,
Piece  toP,
Action &  action,
unsigned int  ptypeMask,
PieceMask  pieceMask 
) [inline]

あるマスに利きを持つすべての駒の中で, ptypeMaskで指定されたptypeになる場合は移動する手を生成する

引数:
state - 盤面
to - 目的のマス
toP - 目的のマスに現在ある駒(又は空白)
action - 手生成のaction(典型的にはstoreかfilterつきstore)
ptypeMask - 移動後の駒のptypeに対応するbitが1なら手を生成する pinnedの場合は移動する手が1手もない場合もある.

addEffectWithEffect.tcc58 行で定義されています。

参照先 osl::Board_Table, osl::KING, osl::Piece::position(), osl::primDir(), と osl::primDirUnsafe().

template<osl::Player P, class Action >
void osl::move_generator::detail::generateNotKing ( const NumEffectState &  state,
Position  target,
Action &  action 
) [inline]
template<Player P, class Action , bool mustCareSilver>
void osl::move_generator::detail::generateOpenOrCapture ( const NumEffectState &  state,
Position  target,
Piece  p,
int  num,
Action &  action 
) [inline]
template<osl::Player P, class Action >
void osl::move_generator::detail::generateRookLongMove ( const NumEffectState &  state,
Position  target,
Action &  action 
) [inline]
template<osl::Player P, class Action >
void osl::move_generator::detail::generateRookLongMoveNotKing ( const NumEffectState &  state,
Position  target,
Action &  action,
CArray< unsigned char, 8 > const &  pieceMobility 
) [inline]
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義
Sun May 16 09:58:25 2010に生成されました。  doxygen 1.6.3