素抜きがあるため動けない駒を求める. More...
#include <pin.h>
Static Public Member Functions | |
static PieceMask | makeNaive (const SimpleState &state, Square target, Player defense) |
8方向計算する方法 | |
static PieceMask | makeByPiece (const NumEffectState &state, Square target, Player defense) |
飛車角は駒の位置から判断する計算方法. | |
static PieceMask | makeByPieceKing (const NumEffectState &state, Square target, Player defense) |
飛車角は駒の位置から判断, KINGに特化 | |
template<Player Defense, Direction DIR> | |
static void | findDirectionStep (const NumEffectState &state, Square target, PieceMask &pins) |
駒から8近傍をサーチしていって,その方向の利きがあるか? | |
template<Player Defense> | |
static PieceMask | makeStep (const NumEffectState &state, Square target) |
static PieceMask | makeStep (const NumEffectState &state, Square target, Player defense) |
template<Player Defense> | |
static PieceMask | makeStep1 (const NumEffectState &state, Square target) |
static PieceMask | makeStep1 (const NumEffectState &state, Square target, Player defense) |
static PieceMask | make (const NumEffectState &state, Square target, Player defense) |
pin されている駒を計算する | |
static PieceMask | make (const NumEffectState &state, Player defense) |
defense の王を守るために pin されている駒を計算する | |
static PieceMask | makeNaive (const SimpleState &state, Player defense) |
static PieceMask | makeByPiece (const NumEffectState &state, Player defense) |
static int | count (const NumEffectState &state, Player defense) |
defense の王について pin されている駒を計算する | |
static int | count (const NumEffectState &state, Square target, Player defense) |
Static Private Member Functions | |
template<Direction DIR> | |
static void | findDirection (const SimpleState &state, Square target, Player defense, PieceMask &pins) |
template<Player P> | |
static void | findLance (const NumEffectState &state, Square target, PieceMask &pins) |
targetにはdefenseのKINGがあるという前提 Pはdefense targetにdefenseのlanceがあると働かない. | |
static bool | hasEffectWithOffset (const SimpleState &state, Piece attack_piece, Piece pin, Offset diff) |
static bool | hasEffectWithOffset (const NumEffectState &state, Piece attack_piece, Piece pin, Offset) |
static void | findOffset (const NumEffectState &state, Piece attack_piece, Square target, Player defense, Offset diff, PieceMask &pins) |
template<Ptype PTYPE> | |
static void | findPtype (const NumEffectState &state, Square target, Player attack, Player defense, PieceMask &result) |
static int osl::effect_util::Pin::count | ( | const NumEffectState & | state, |
Player | defense | ||
) | [inline, static] |
static int osl::effect_util::Pin::count | ( | const NumEffectState & | state, |
Square | target, | ||
Player | defense | ||
) | [inline, static] |
Definition at line 285 of file effect_util/pin.h.
References make().
static void osl::effect_util::Pin::findDirection | ( | const SimpleState & | state, |
Square | target, | ||
Player | defense, | ||
PieceMask & | pins | ||
) | [inline, static, private] |
Definition at line 73 of file effect_util/pin.h.
References osl::alt(), osl::Board_Table, osl::PtypeTable::getMoveMask(), osl::BoardTable::getOffset(), osl::Piece::isOnBoardByOwner(), osl::Piece::number(), osl::Piece::ptype(), osl::Ptype_Table, and osl::Piece::square().
static void osl::effect_util::Pin::findDirectionStep | ( | const NumEffectState & | state, |
Square | target, | ||
PieceMask & | pins | ||
) | [inline, static] |
駒から8近傍をサーチしていって,その方向の利きがあるか?
Definition at line 186 of file effect_util/pin.h.
References osl::BLACK, osl::Piece::isEdgeNum(), osl::Piece::isEmptyNum(), and osl::Piece::isPieceNum().
static void osl::effect_util::Pin::findLance | ( | const NumEffectState & | state, |
Square | target, | ||
PieceMask & | pins | ||
) | [inline, static, private] |
targetにはdefenseのKINGがあるという前提 Pはdefense targetにdefenseのlanceがあると働かない.
Definition at line 91 of file effect_util/pin.h.
References osl::Piece::EMPTY(), osl::Piece::isOnBoardByOwner(), and osl::Piece::number().
static void osl::effect_util::Pin::findOffset | ( | const NumEffectState & | state, |
Piece | attack_piece, | ||
Square | target, | ||
Player | defense, | ||
Offset | diff, | ||
PieceMask & | pins | ||
) | [inline, static, private] |
Definition at line 127 of file effect_util/pin.h.
References hasEffectWithOffset(), osl::Piece::isPiece(), osl::Piece::number(), and osl::Piece::owner().
Referenced by findPtype().
static void osl::effect_util::Pin::findPtype | ( | const NumEffectState & | state, |
Square | target, | ||
Player | attack, | ||
Player | defense, | ||
PieceMask & | result | ||
) | [inline, static, private] |
Definition at line 140 of file effect_util/pin.h.
References osl::BISHOP, osl::BOOST_STATIC_ASSERT(), findOffset(), osl::PtypeTable::getEffect(), osl::EffectContent::hasBlockableEffect(), osl::Piece::isOnBoardByOwner(), osl::newPtypeO(), osl::EffectContent::offset(), osl::Ptype_Table, osl::ROOK, osl::Piece::square(), and osl::Offset::zero().
static bool osl::effect_util::Pin::hasEffectWithOffset | ( | const SimpleState & | state, |
Piece | attack_piece, | ||
Piece | pin, | ||
Offset | diff | ||
) | [inline, static, private] |
Definition at line 116 of file effect_util/pin.h.
References osl::Piece::square().
Referenced by findOffset().
static bool osl::effect_util::Pin::hasEffectWithOffset | ( | const NumEffectState & | state, |
Piece | attack_piece, | ||
Piece | pin, | ||
Offset | |||
) | [inline, static, private] |
Definition at line 122 of file effect_util/pin.h.
References osl::Piece::square().
static PieceMask osl::effect_util::Pin::make | ( | const NumEffectState & | state, |
Square | target, | ||
Player | defense | ||
) | [inline, static] |
pin されている駒を計算する
target | 守るマス |
defense | pin されている駒の所有者 |
Definition at line 257 of file effect_util/pin.h.
References makeByPiece().
Referenced by count(), osl::state::NumEffectState::isConsistent(), and test_position().
static PieceMask osl::effect_util::Pin::make | ( | const NumEffectState & | state, |
Player | defense | ||
) | [inline, static] |
defense の王を守るために pin されている駒を計算する
Definition at line 265 of file effect_util/pin.h.
References makeByPiece().
osl::PieceMask osl::effect_util::Pin::makeByPiece | ( | const NumEffectState & | state, |
Square | target, | ||
Player | defense | ||
) | [static] |
飛車角は駒の位置から判断する計算方法.
Definition at line 24 of file effect_util/pin.cc.
References osl::alt(), osl::Square::isOnBoard(), result, and target.
Referenced by make().
static PieceMask osl::effect_util::Pin::makeByPiece | ( | const NumEffectState & | state, |
Player | defense | ||
) | [inline, static] |
Definition at line 273 of file effect_util/pin.h.
References makeByPieceKing().
osl::PieceMask osl::effect_util::Pin::makeByPieceKing | ( | const NumEffectState & | state, |
Square | target, | ||
Player | defense | ||
) | [static] |
飛車角は駒の位置から判断, KINGに特化
Definition at line 39 of file effect_util/pin.cc.
References osl::alt(), osl::BLACK, osl::Square::isOnBoard(), result, and target.
Referenced by makeByPiece().
osl::PieceMask osl::effect_util::Pin::makeNaive | ( | const SimpleState & | state, |
Square | target, | ||
Player | defense | ||
) | [static] |
8方向計算する方法
Definition at line 7 of file effect_util/pin.cc.
References osl::Square::isOnBoard(), result, and target.
Referenced by makeNaive().
static PieceMask osl::effect_util::Pin::makeNaive | ( | const SimpleState & | state, |
Player | defense | ||
) | [inline, static] |
Definition at line 269 of file effect_util/pin.h.
References makeNaive().
static PieceMask osl::effect_util::Pin::makeStep | ( | const NumEffectState & | state, |
Square | target | ||
) | [inline, static] |
Definition at line 213 of file effect_util/pin.h.
References target.
static PieceMask osl::effect_util::Pin::makeStep | ( | const NumEffectState & | state, |
Square | target, | ||
Player | defense | ||
) | [inline, static] |
Definition at line 227 of file effect_util/pin.h.
References osl::BLACK, and target.
static PieceMask osl::effect_util::Pin::makeStep1 | ( | const NumEffectState & | state, |
Square | target | ||
) | [inline, static] |
Definition at line 236 of file effect_util/pin.h.
References target.
static PieceMask osl::effect_util::Pin::makeStep1 | ( | const NumEffectState & | state, |
Square | target, | ||
Player | defense | ||
) | [inline, static] |
Definition at line 243 of file effect_util/pin.h.
References osl::BLACK, and target.