クラス テンプレート osl::move_generator::Escape< Action >

逃げる手を生成 生成される手はunique [詳細]

#include <escape_.h>

すべてのメンバ一覧

Static Public メソッド

template<Player P, bool CheapOnly>
static void generateBlocking (const NumEffectState &state, Piece p, Position to, Position from, Action &action)
 Position toにある玉以外の駒pにfromにある駒から王手がかかってい る時に,長い利きの途中に入る手を 生成する(合駒,駒移動). breakThreatmateから直接呼ばれる..
template<Player P, bool CheapOnly>
static void generateBlockingKing (const NumEffectState &state, Piece p, Position from, Action &action)
 玉pにfromにある駒から王手がかかってい る時に,長い利きの途中に入る手を 生成する(合駒,駒移動). breakThreatmateから直接呼ばれる.
template<Player P>
static void generateCaptureKing (const NumEffectState &state, Piece p, Position target, Action &action)
 相手の駒を取ることによって利きを逃れる.
template<Player P>
static void generateCapture (const NumEffectState &state, Piece p, Position target, Action &action)
template<Player P, Ptype Type>
static void generateEscape (const NumEffectState &state, Piece p, Action &action, Int2Type< Type >)
template<Player P, Ptype Type>
static void generateEscape (const NumEffectState &state, Piece p, Action &action)
template<Player P, bool cheapOnly>
static void generateKingEscape (const NumEffectState &state, Action &action)
template<Player P, Ptype Type, bool CheapOnly>
static void generateMovesBy (const NumEffectState &state, Piece p, Piece attackerPiece, Action &action)
template<Player P, Ptype Type, bool CheapOnly>
static void generateMovesBy (const NumEffectState &state, Piece p, Move last_move, Action &action)
template<Player P, Ptype Type, bool CheapOnly>
static void generateMovesBy (const NumEffectState &state, Piece p, Action &action)
template<Player P, bool CheapOnly>
static void generateMoves (const NumEffectState &state, Piece piece, Piece attackerPiece, Action &action)
 last_move以前からで利きを逃れる
template<Player P, bool shouldPromote, bool CheapOnly>
static void generate (const NumEffectState &state, Piece piece, Action &action)
 last_move以前からで利きを逃れる

説明

template<class Action>
class osl::move_generator::Escape< Action >

逃げる手を生成 生成される手はunique

escape_.h21 行で定義されています。


関数

template<class Action >
template<Player P, bool shouldPromote, bool CheapOnly>
void osl::move_generator::Escape< Action >::generate ( const NumEffectState &  state,
Piece  piece,
Action &  action 
) [inline, static]

last_move以前からで利きを逃れる

escape_.tcc227 行で定義されています。

参照先 osl::Piece::owner(), osl::Piece::position(), と target.

template<class Action >
template<Player P, bool CheapOnly>
void osl::move_generator::Escape< Action >::generateBlocking ( const NumEffectState &  state,
Piece  p,
Position  to,
Position  from,
Action &  action 
) [inline, static]

Position toにある玉以外の駒pにfromにある駒から王手がかかってい る時に,長い利きの途中に入る手を 生成する(合駒,駒移動). breakThreatmateから直接呼ばれる..

Position toにある玉以外の駒にfromにある駒から王手がかかっている時に,長い利きの途中に入る手を 生成する(合駒,駒移動). pが動く手は生成しない CheapOnlyの時は TODO: 自殺手も生成してしまう 短い利きの時にもこちらに入ってしまう.

escape_.tcc102 行で定義されています。

参照先 osl::Board_Table, osl::BoardTable::getShortOffset(), と osl::Position::isOnBoard().

template<class Action >
template<Player P, bool CheapOnly>
void osl::move_generator::Escape< Action >::generateBlockingKing ( const NumEffectState &  state,
Piece  p,
Position  from,
Action &  action 
) [inline, static]

玉pにfromにある駒から王手がかかってい る時に,長い利きの途中に入る手を 生成する(合駒,駒移動). breakThreatmateから直接呼ばれる.

玉pにfromにある駒から王手がかかっている時に,長い利きの途中に入る手を 生成する(合駒,駒移動). 短い利きの時にもこちらに入ってしまう

escape_.tcc133 行で定義されています。

参照先 osl::Board_Table, osl::BoardTable::getShortOffset(), osl::Piece::position(), と osl::Offset::zero().

template<class Action>
template<Player P>
static void osl::move_generator::Escape< Action >::generateCapture ( const NumEffectState &  state,
Piece  p,
Position  target,
Action &  action 
) [inline, static]

escape_.h51 行で定義されています。

template<class Action>
template<Player P>
static void osl::move_generator::Escape< Action >::generateCaptureKing ( const NumEffectState &  state,
Piece  p,
Position  target,
Action &  action 
) [inline, static]

相手の駒を取ることによって利きを逃れる.

逃げ出す駒で取る手は生成しない(2003/5/12)

引数:
target toru koma no pos

escape_.h47 行で定義されています。

template<class Action>
template<Player P, Ptype Type>
static void osl::move_generator::Escape< Action >::generateEscape ( const NumEffectState &  state,
Piece  p,
Action &  action 
) [inline, static]
引数:
p 逃げ出す駒

引数:
王の場合だけ特別扱いできる 

escape_.h61 行で定義されています。

参照先 osl::KING, osl::Piece::owner(), osl::Piece::position(), と osl::Piece::ptype().

template<class Action>
template<Player P, Ptype Type>
static void osl::move_generator::Escape< Action >::generateEscape ( const NumEffectState &  state,
Piece  p,
Action &  action,
Int2Type< Type >   
) [inline, static]
template<class Action >
template<Player P, bool CheapOnly>
void osl::move_generator::Escape< Action >::generateKingEscape ( const NumEffectState &  state,
Action &  action 
) [inline, static]

escape_.tcc176 行で定義されています。

template<class Action >
template<Player P, bool CheapOnly>
void osl::move_generator::Escape< Action >::generateMoves ( const NumEffectState &  state,
Piece  piece,
Piece  attackerPiece,
Action &  action 
) [inline, static]

last_move以前からで利きを逃れる

escape_.tcc203 行で定義されています。

参照先 osl::BISHOP, osl::GOLD, osl::KING, osl::KNIGHT, osl::LANCE, osl::PAWN, osl::PBISHOP, osl::PKNIGHT, osl::PLANCE, osl::PPAWN, osl::PROOK, osl::PSILVER, osl::Piece::ptype(), osl::ROOK, と osl::SILVER.

template<class Action >
template<Player P, Ptype TYPE, bool CheapOnly>
void osl::move_generator::Escape< Action >::generateMovesBy ( const NumEffectState &  state,
Piece  p,
Action &  action 
) [inline, static]

escape_.tcc190 行で定義されています。

参照先 osl::Piece::position(), と target.

template<class Action>
template<Player P, Ptype Type, bool CheapOnly>
static void osl::move_generator::Escape< Action >::generateMovesBy ( const NumEffectState &  state,
Piece  p,
Move  last_move,
Action &  action 
) [inline, static]
template<class Action >
template<Player P, Ptype Type, bool CheapOnly>
void osl::move_generator::Escape< Action >::generateMovesBy ( const NumEffectState &  state,
Piece  p,
Piece  attackerPiece,
Action &  action 
) [inline, static]
引数:
p 例えば king

escape only

escape

合い駒

escape

合い駒

escape_.tcc148 行で定義されています。

参照先 osl::Piece::EMPTY(), osl::KING, と osl::Piece::position().


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義
Sun May 16 09:58:25 2010に生成されました。  doxygen 1.6.3