関数 | |
template<Player P, class Action , PromoteType CanP, Direction Dir, bool notPromoteCapture> | |
void | generateLong (NumEffectState const &state, Piece p, const Piece *ptr, Square from, Action &action, Int2Type< true >, Move moveBase, Ptype ptype) |
ROOK, BISHOP, PROOK, PBISHOPのlong方向の手生成 CanPはNoPromoteかCanPromote, CheckPromoteのみ NoPromoteはpromoteできない点からの後ろ,横のdirection CanPromoteはpromoteできる点から CheckPromoteはpromoteできない点からの前向き direction. | |
template<Player P, class Action , PromoteType CanP, Direction Dir, bool notPromoteCapture> | |
void | generateLong (NumEffectState const &, Piece, const Piece *, Square, Action &, Int2Type< false >, Move, Ptype) |
template<Player P, Ptype T, class Action , PromoteType CanP, Direction Dir, bool notPromoteCapture> | |
void | generateLong (NumEffectState const &state, Piece p, const Piece *ptr, Square pos, Action &action, Move moveBase, Ptype ptype) |
template<Player P, class Action , PromoteType CanP, Direction Dir, bool notPromoteCapture> | |
void | generateShort (const Piece *ptr, Square from, Action &action, Int2Type< true >, Move moveBase, Ptype ptype) |
短い利きの動き CanPromoteType - promote可能な動きの時 MustPromoteType - 2段目の歩,3,4段目の桂馬 | |
template<Player P, class Action , PromoteType CanP, Direction Dir, bool notPromoteCapture> | |
void | generateShort (const Piece *, Square, Action &, Int2Type< false >, Move, Ptype) |
template<Player P, Ptype T, class Action , PromoteType CanP, Direction Dir, bool notPromoteCapture> | |
void | generateShort (const Piece *ptr, Square from, Action &action, Move moveBase, Ptype) |
template<Player P, Ptype T, class Action , PromoteType CanP, bool useDirMask, bool notPromoteCapture> | |
void | generatePtypePromote (const NumEffectState &state, Piece p, Action &action, Square from, int dirMask) |
template<Player P, Direction Dir, class Action , bool notPromoteCapture> | |
void | generateKingDir (const Piece *ptr, Square from, Action &action, unsigned int liberty, Move const &moveBase) |
template<Player P, class Action , bool useDirMask, bool notPromoteCapture> | |
void | generateKing (const NumEffectState &state, Action &action, Square pos, int dirMask) |
template<Player P, class Action , bool useDirMask, bool notPromoteCapture> | |
void | generateLance (const NumEffectState &state, Piece p, Action &action, Square from, int dirMask) |
template<Player P, class Action , bool useDirMask, bool notPromoteCapture> | |
void | generatePawn (const NumEffectState &state, Piece p, Action &action, Square from, int dirMask) |
void osl::move_generator::piece_on_board::generateKing | ( | const NumEffectState & | state, | |
Action & | action, | |||
Square | pos, | |||
int | dirMask | |||
) | [inline] |
pieceOnBoard.tcc の 186 行で定義されています。
参照先 osl::SimpleState::getPiecePtr(), osl::NumEffectState::Iking8Info(), osl::KING, osl::L, osl::U, osl::UL, と osl::UR.
void osl::move_generator::piece_on_board::generateKingDir | ( | const Piece * | ptr, | |
Square | from, | |||
Action & | action, | |||
unsigned int | liberty, | |||
Move const & | moveBase | |||
) | [inline] |
pieceOnBoard.tcc の 170 行で定義されています。
参照先 osl::Piece::canMoveOn(), osl::Piece::isEmpty(), osl::KING, osl::Move::newAddCapture(), と osl::Move::newAddTo().
void osl::move_generator::piece_on_board::generateLance | ( | const NumEffectState & | state, | |
Piece | p, | |||
Action & | action, | |||
Square | from, | |||
int | dirMask | |||
) | [inline] |
void osl::move_generator::piece_on_board::generateLong | ( | NumEffectState const & | state, | |
Piece | p, | |||
const Piece * | ptr, | |||
Square | from, | |||
Action & | action, | |||
Int2Type< true > | , | |||
Move | moveBase, | |||
Ptype | ptype | |||
) | [inline] |
ROOK, BISHOP, PROOK, PBISHOPのlong方向の手生成 CanPはNoPromoteかCanPromote, CheckPromoteのみ NoPromoteはpromoteできない点からの後ろ,横のdirection CanPromoteはpromoteできる点から CheckPromoteはpromoteできない点からの前向き direction.
pieceOnBoard.tcc の 22 行で定義されています。
参照先 osl::BLACK, osl::Piece::canMoveOn(), osl::Square::canPromote(), osl::move_generator::CanPromoteType, osl::move_generator::CheckPromoteType, osl::SimpleState::getPiecePtr(), osl::Piece::intValue(), osl::Offset::intValue(), osl::inverse(), osl::LANCE, osl::longToShort(), osl::NumEffectState::mobilityOf(), osl::Move::newAddCapture(), osl::Move::newAddTo(), osl::Piece::number(), osl::Move::promote(), osl::promote(), osl::Square::y1(), と osl::Offset::zero().
参照元 generateLong().
void osl::move_generator::piece_on_board::generateLong | ( | NumEffectState const & | , | |
Piece | , | |||
const Piece * | , | |||
Square | , | |||
Action & | , | |||
Int2Type< false > | , | |||
Move | , | |||
Ptype | ||||
) | [inline] |
pieceOnBoard.tcc の 81 行で定義されています。
void osl::move_generator::piece_on_board::generateLong | ( | NumEffectState const & | state, | |
Piece | p, | |||
const Piece * | ptr, | |||
Square | pos, | |||
Action & | action, | |||
Move | moveBase, | |||
Ptype | ptype | |||
) | [inline] |
pieceOnBoard.tcc の 87 行で定義されています。
参照先 osl::move_generator::CheckPromoteType, と generateLong().
void osl::move_generator::piece_on_board::generatePawn | ( | const NumEffectState & | state, | |
Piece | p, | |||
Action & | action, | |||
Square | from, | |||
int | dirMask | |||
) | [inline] |
void osl::move_generator::piece_on_board::generatePtypePromote | ( | const NumEffectState & | state, | |
Piece | p, | |||
Action & | action, | |||
Square | from, | |||
int | dirMask | |||
) | [inline] |
pieceOnBoard.tcc の 135 行で定義されています。
参照先 osl::SimpleState::getPiecePtr(), osl::GOLD, osl::L, osl::Piece::ptype(), osl::U, osl::UL, と osl::UR.
void osl::move_generator::piece_on_board::generateShort | ( | const Piece * | , | |
Square | , | |||
Action & | , | |||
Int2Type< false > | , | |||
Move | , | |||
Ptype | ||||
) |
pieceOnBoard.tcc の 118 行で定義されています。
void osl::move_generator::piece_on_board::generateShort | ( | const Piece * | ptr, | |
Square | from, | |||
Action & | action, | |||
Int2Type< true > | , | |||
Move | moveBase, | |||
Ptype | ptype | |||
) |
短い利きの動き CanPromoteType - promote可能な動きの時 MustPromoteType - 2段目の歩,3,4段目の桂馬
pieceOnBoard.tcc の 102 行で定義されています。
参照先 osl::Piece::canMoveOn(), osl::move_generator::CanPromoteType, osl::Offset::intValue(), osl::Piece::isEmpty(), osl::move_generator::MustPromoteType, osl::Move::newAddCapture(), osl::Move::newAddTo(), osl::Move::promote(), と osl::promote().
参照元 generateShort().
void osl::move_generator::piece_on_board::generateShort | ( | const Piece * | ptr, | |
Square | from, | |||
Action & | action, | |||
Move | moveBase, | |||
Ptype | ||||
) |
pieceOnBoard.tcc の 124 行で定義されています。
参照先 osl::move_generator::CanPromoteType, osl::move_generator::CheckPromoteType, と generateShort().