逃げる手を生成 生成される手はunique More...
#include <escape_.h>
Static Public Member Functions | |
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 からの利きを逃れる. |
逃げる手を生成 生成される手はunique
template void osl::move_generator::Escape< Action >::generate< WHITE, true, false > | ( | const NumEffectState & | state, |
Piece | piece, | ||
Action & | action | ||
) | [static] |
attacker からの利きを逃れる.
Definition at line 236 of file escape_.tcc.
References osl::Piece::owner(), osl::Piece::square(), and target.
template void osl::move_generator::Escape< Action >::generateBlocking< WHITE, true > | ( | const NumEffectState & | state, |
Piece | p, | ||
Square | to, | ||
Square | from, | ||
Action & | action | ||
) | [static] |
Square toにある玉以外の駒pにfromにある駒から王手がかかってい る時に,長い利きの途中に入る手を 生成する(合駒,駒移動). breakThreatmateから直接呼ばれる.
Square toにある玉以外の駒にfromにある駒から王手がかかっている時に,長い利きの途中に入る手を 生成する(合駒,駒移動). pが動く手は生成しない CheapOnlyの時は TODO: 自殺手も生成してしまう 短い利きの時にもこちらに入ってしまう
Definition at line 102 of file escape_.tcc.
References osl::Board_Table, osl::BoardTable::getShortOffset(), and osl::Square::isOnBoard().
template void osl::move_generator::Escape< Action >::generateBlockingKing< WHITE, false > | ( | const NumEffectState & | state, |
Piece | p, | ||
Square | from, | ||
Action & | action | ||
) | [static] |
玉pにfromにある駒から王手がかかってい る時に,長い利きの途中に入る手を 生成する(合駒,駒移動). breakThreatmateから直接呼ばれる.
玉pにfromにある駒から王手がかかっている時に,長い利きの途中に入る手を 生成する(合駒,駒移動). 短い利きの時にもこちらに入ってしまう
Definition at line 133 of file escape_.tcc.
References osl::Board_Table, osl::BoardTable::getShortOffset(), osl::Piece::square(), and osl::Offset::zero().
static void osl::move_generator::Escape< Action >::generateCapture | ( | const NumEffectState & | state, |
Piece | p, | ||
Square | target, | ||
Action & | action | ||
) | [inline, static] |
static void osl::move_generator::Escape< Action >::generateCaptureKing | ( | const NumEffectState & | state, |
Piece | p, | ||
Square | target, | ||
Action & | action | ||
) | [inline, static] |
static void osl::move_generator::Escape< Action >::generateEscape | ( | const NumEffectState & | state, |
Piece | p, | ||
Action & | action, | ||
Int2Type< Type > | |||
) | [static] |
static void osl::move_generator::Escape< Action >::generateEscape | ( | const NumEffectState & | state, |
Piece | p, | ||
Action & | action | ||
) | [inline, static] |
p | 逃げ出す駒 |
王の場合だけ特別扱いできる |
Definition at line 61 of file escape_.h.
References osl::KING, osl::Piece::owner(), osl::Piece::ptype(), and osl::Piece::square().
template void osl::move_generator::Escape< Action >::generateKingEscape< WHITE, true > | ( | const NumEffectState & | state, |
Action & | action | ||
) | [static] |
Definition at line 183 of file escape_.tcc.
template void osl::move_generator::Escape< Action >::generateMoves< WHITE, true > | ( | const NumEffectState & | state, |
Piece | piece, | ||
Piece | attacker, | ||
Action & | action | ||
) | [static] |
attacker からの利きを逃れる.
CAVEAT: 両王手の場合はPIECE_EMPTYにしておく必要がある
Definition at line 212 of file escape_.tcc.
References 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, and osl::SILVER.
void osl::move_generator::Escape< Action >::generateMovesBy | ( | const NumEffectState & | state, |
Piece | p, | ||
Piece | attacker, | ||
Action & | action | ||
) | [static] |
p | 例えば king |
escape only
escape
合い駒
escape
合い駒
Definition at line 148 of file escape_.tcc.
References osl::Piece::EMPTY(), osl::KING, and osl::Piece::square().
static void osl::move_generator::Escape< Action >::generateMovesBy | ( | const NumEffectState & | state, |
Piece | p, | ||
Move | last_move, | ||
Action & | action | ||
) | [static] |
void osl::move_generator::Escape< Action >::generateMovesBy | ( | const NumEffectState & | state, |
Piece | p, | ||
Action & | action | ||
) | [static] |
Definition at line 197 of file escape_.tcc.
References osl::Piece::square(), and target.