逃げる手を生成 生成される手は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以前からで利きを逃れる |
逃げる手を生成 生成される手はunique
void osl::move_generator::Escape< Action >::generate | ( | const NumEffectState & | state, | |
Piece | piece, | |||
Action & | action | |||
) | [inline, static] |
last_move以前からで利きを逃れる
escape_.tcc の 227 行で定義されています。
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_.tcc の 102 行で定義されています。
参照先 osl::Board_Table, osl::BoardTable::getShortOffset(), と osl::Position::isOnBoard().
void osl::move_generator::Escape< Action >::generateBlockingKing | ( | const NumEffectState & | state, | |
Piece | p, | |||
Position | from, | |||
Action & | action | |||
) | [inline, static] |
玉pにfromにある駒から王手がかかってい る時に,長い利きの途中に入る手を 生成する(合駒,駒移動). breakThreatmateから直接呼ばれる.
玉pにfromにある駒から王手がかかっている時に,長い利きの途中に入る手を 生成する(合駒,駒移動). 短い利きの時にもこちらに入ってしまう
escape_.tcc の 133 行で定義されています。
参照先 osl::Board_Table, osl::BoardTable::getShortOffset(), osl::Piece::position(), と osl::Offset::zero().
static void osl::move_generator::Escape< Action >::generateCapture | ( | const NumEffectState & | state, | |
Piece | p, | |||
Position | target, | |||
Action & | action | |||
) | [inline, static] |
static void osl::move_generator::Escape< Action >::generateCaptureKing | ( | const NumEffectState & | state, | |
Piece | p, | |||
Position | target, | |||
Action & | action | |||
) | [inline, static] |
static void osl::move_generator::Escape< Action >::generateEscape | ( | const NumEffectState & | state, | |
Piece | p, | |||
Action & | action | |||
) | [inline, static] |
p | 逃げ出す駒 |
王の場合だけ特別扱いできる |
参照先 osl::KING, osl::Piece::owner(), osl::Piece::position(), と osl::Piece::ptype().
static void osl::move_generator::Escape< Action >::generateEscape | ( | const NumEffectState & | state, | |
Piece | p, | |||
Action & | action, | |||
Int2Type< Type > | ||||
) | [inline, static] |
void osl::move_generator::Escape< Action >::generateKingEscape | ( | const NumEffectState & | state, | |
Action & | action | |||
) | [inline, static] |
escape_.tcc の 176 行で定義されています。
void osl::move_generator::Escape< Action >::generateMoves | ( | const NumEffectState & | state, | |
Piece | piece, | |||
Piece | attackerPiece, | |||
Action & | action | |||
) | [inline, static] |
last_move以前からで利きを逃れる
escape_.tcc の 203 行で定義されています。
参照先 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.
void osl::move_generator::Escape< Action >::generateMovesBy | ( | const NumEffectState & | state, | |
Piece | p, | |||
Action & | action | |||
) | [inline, static] |
escape_.tcc の 190 行で定義されています。
参照先 osl::Piece::position(), と target.
static void osl::move_generator::Escape< Action >::generateMovesBy | ( | const NumEffectState & | state, | |
Piece | p, | |||
Move | last_move, | |||
Action & | action | |||
) | [inline, static] |
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_.tcc の 148 行で定義されています。
参照先 osl::Piece::EMPTY(), osl::KING, と osl::Piece::position().