Static Public メソッド

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

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

#include <escape_.h>

すべてのメンバ一覧

Static Public メソッド

template<Player P, bool CheapOnly>
static void generateBlocking (const NumEffectState &state, Piece p, Square to, Square from, Action &action)
 Square toにある玉以外の駒pにfromにある駒から王手がかかってい る時に,長い利きの途中に入る手を 生成する(合駒,駒移動). breakThreatmateから直接呼ばれる..
template<Player P, bool CheapOnly>
static void generateBlockingKing (const NumEffectState &state, Piece p, Square from, Action &action)
 玉pにfromにある駒から王手がかかってい る時に,長い利きの途中に入る手を 生成する(合駒,駒移動). breakThreatmateから直接呼ばれる.
template<Player P>
static void generateCaptureKing (const NumEffectState &state, Piece p, Square target, Action &action)
 相手の駒を取ることによって利きを逃れる.
template<Player P>
static void generateCapture (const NumEffectState &state, Piece p, Square 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 attacker, 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 attacker, Action &action)
 attacker からの利きを逃れる.
template<Player P, bool shouldPromote, bool CheapOnly>
static void generate (const NumEffectState &state, Piece piece, Action &action)
 attacker からの利きを逃れる.

説明

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

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

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


関数

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

attacker からの利きを逃れる.

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

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

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

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

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

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

参照先 osl::Board_Table, osl::NumEffectState::countEffect(), osl::BoardTable::getShortOffset(), osl::Piece::isEmpty(), osl::Square::isOnBoard(), と osl::SimpleState::pieceAt().

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

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

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

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

参照先 osl::Board_Table, osl::BoardTable::getShortOffset(), osl::Piece::isEmpty(), osl::SimpleState::pieceAt(), osl::Piece::square(), と osl::Offset::zero().

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

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

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

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

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

引数:
target toru koma no pos

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

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 >   
) [static]
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_.h56 行で定義されています。

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

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

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

参照先 osl::SimpleState::pieceOf().

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

attacker からの利きを逃れる.

CAVEAT: 両王手の場合はPIECE_EMPTYにしておく必要がある

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

参照先 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,
Piece  attacker,
Action &  action 
) [static]
引数:
p 例えば king

escape only

escape

合い駒

escape

合い駒

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

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

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

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

参照先 osl::Piece::square().


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義