逃げる手を生成 生成される手は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.
1.7.6.1