All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Static Public Member Functions | List of all members
osl::move_generator::PieceOnBoard< Action, noCapturePromote > Struct Template Reference

特定のpieceを動かす手を生成 More...

#include <pieceOnBoard.h>

Public Member Functions

template<Player P, Ptype T, bool useDirMask>
void generatePtypeUnsafe (const NumEffectState &state, Piece p, Action &action, int dirMask)
 
template<Player P, Ptype T, bool useDirMask>
void generatePtype (const NumEffectState &state, Piece p, Action &action, int dirMask)
 
template<Player P, bool useDirmask>
void generate (const NumEffectState &state, Piece p, Action &action, int dirMask)
 

Static Public Member Functions

template<Player P>
static void generatePieceUnsafe (const NumEffectState &state, Piece p, Square target, Piece p1, Action &action)
 駒pがマスtargetに利きをもっているとして,手を生成する. More...
 
template<Player P>
static void generatePiece (const NumEffectState &state, Piece p, Square target, Piece p1, Action &action)
 
template<Player P, Ptype T>
static void generatePiecePtypeUnsafe (const NumEffectState &state, Piece p, Square target, Piece p1, Action &action)
 PtypeがTの駒pがマスtargetに利きをもっているとして,手を生成する. p1 - targetにある駒 More...
 
template<Player P, Ptype T>
static void generatePiecePtype (const NumEffectState &state, Piece p, Square target, Piece p1, Action &action)
 
template<Player P, Ptype T, bool useDirMask>
static void generatePtype (const NumEffectState &state, Piece p, Action &action, int dirMask=0)
 Generate moves without stating the Ptype as template param. More...
 
template<Player P, Ptype T>
static void generatePtype (const NumEffectState &state, Piece p, Action &action)
 
template<Player P, Ptype T, bool useDirMask>
static void generatePtypeUnsafe (const NumEffectState &state, Piece p, Action &action, int dirMask)
 Generate moves without stating the Ptype as template param. More...
 
template<Player P, Ptype T>
static void generatePtypeUnsafe (const NumEffectState &state, Piece p, Action &action)
 
template<Player P, bool useDirMask>
static void generate (const NumEffectState &state, Piece p, Action &action, int dirMask=0)
 Generate moves without stating the Ptype as template param. More...
 

Detailed Description

template<class Action, bool noCapturePromote = false>
struct osl::move_generator::PieceOnBoard< Action, noCapturePromote >

特定のpieceを動かす手を生成

Definition at line 20 of file pieceOnBoard.h.

Member Function Documentation

template<class Action, bool noCapturePromote = false>
template<Player P, bool useDirMask>
static void osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generate ( const NumEffectState &  state,
Piece  p,
Action &  action,
int  dirMask = 0 
)
static

Generate moves without stating the Ptype as template param.

自玉に王手がかかっていない時に呼ぶ.

Parameters
state- 手を作成する局面,手番はPと一致
p- 盤面上に存在するPの駒
action- 手生成用のAction
template<class Action, bool noCapturePromote = false>
template<Player P, bool useDirmask>
void osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generate ( const NumEffectState &  state,
Piece  p,
Action &  action,
int  dirMask 
)
template<class Action, bool noCapturePromote = false>
template<Player P>
static void osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePiece ( const NumEffectState &  state,
Piece  p,
Square  target,
Piece  p1,
Action &  action 
)
inlinestatic
template<class Action, bool noCapturePromote = false>
template<Player P, Ptype T>
static void osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePiecePtype ( const NumEffectState &  state,
Piece  p,
Square  target,
Piece  p1,
Action &  action 
)
inlinestatic
template<class Action, bool noCapturePromote = false>
template<Player P, Ptype T>
static void osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePiecePtypeUnsafe ( const NumEffectState &  state,
Piece  p,
Square  target,
Piece  p1,
Action &  action 
)
inlinestatic

PtypeがTの駒pがマスtargetに利きをもっているとして,手を生成する. p1 - targetにある駒

Definition at line 74 of file pieceOnBoard.h.

References osl::BISHOP, osl::BLACK, osl::canPromote(), osl::Square::canPromote(), osl::KNIGHT, osl::LANCE, osl::PAWN, osl::promote(), osl::Piece::ptype(), osl::ROOK, osl::Piece::square(), and osl::Square::y().

template<class Action, bool noCapturePromote = false>
template<Player P>
static void osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePieceUnsafe ( const NumEffectState &  state,
Piece  p,
Square  target,
Piece  p1,
Action &  action 
)
inlinestatic
template<class Action, bool noCapturePromote = false>
template<Player P, Ptype T, bool useDirMask>
static void osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePtype ( const NumEffectState &  state,
Piece  p,
Action &  action,
int  dirMask = 0 
)
static

Generate moves without stating the Ptype as template param.

pinの場合はそれに応じた手を生成する

Parameters
T- moveTypeがTの駒
state- 手を作成する局面,手番はPと一致
p- 盤面上に存在するPの駒
action- 手生成用のAction
template<class Action, bool noCapturePromote = false>
template<Player P, Ptype T>
static void osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePtype ( const NumEffectState &  state,
Piece  p,
Action &  action 
)
inlinestatic

Definition at line 118 of file pieceOnBoard.h.

template<class Action, bool noCapturePromote = false>
template<Player P, Ptype T, bool useDirMask>
void osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePtype ( const NumEffectState &  state,
Piece  p,
Action &  action,
int  dirMask 
)

Definition at line 355 of file pieceOnBoard.tcc.

References osl::KNIGHT, osl::Piece::number(), and osl::primDir().

template<class Action, bool noCapturePromote = false>
template<Player P, Ptype T, bool useDirMask>
static void osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePtypeUnsafe ( const NumEffectState &  state,
Piece  p,
Action &  action,
int  dirMask 
)
static

Generate moves without stating the Ptype as template param.

pinでないことが判明している時に呼び出す

Parameters
T- moveTypeがTの駒
state- 手を作成する局面,手番はPと一致
p- 盤面上に存在するPの駒
action- 手生成用のAction
template<class Action, bool noCapturePromote = false>
template<Player P, Ptype T>
static void osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePtypeUnsafe ( const NumEffectState &  state,
Piece  p,
Action &  action 
)
inlinestatic

Definition at line 134 of file pieceOnBoard.h.

template<class Action, bool noCapturePromote = false>
template<Player P, Ptype T, bool useDirMask>
void osl::move_generator::PieceOnBoard< Action, noCapturePromote >::generatePtypeUnsafe ( const NumEffectState &  state,
Piece  p,
Action &  action,
int  dirMask 
)

The documentation for this struct was generated from the following files: