構成 | |
struct | BishopMobility |
盤上の角および馬が動けるマスの数を数える [詳細] | |
class | KingMobility |
struct | LanceMobility |
盤上の香車の動けるマス [詳細] | |
union | V4 |
class | MobilityContent |
駒毎に指定の方向の利きを持つ最後のSquare. [詳細] | |
class | MobilityTable |
駒番号からMobilityContentを得る [詳細] | |
struct | RookMobility |
盤上の飛車および竜の動けるマス [詳細] | |
型定義 | |
typedef long long v2di | __attribute__ ((vector_size(16))) |
関数 | |
template<Player P, bool All, bool Safe> | |
void | countMobilityBoth (const NumEffectState &state, Square pos, Offset o, int &countAll, int &countSafe) |
P : 駒pの持ち主 All : countAllを求めるかどうか? Safe : countAllを求めるかどうか? countAll : 利きに関係なく動けるマス countSafe : 相手の利きがない動けるマス 両方を求める. | |
void | countMobilityBoth (Player P, const NumEffectState &state, Square pos, Offset o, int &countAll, int &countSafe) |
int | countMobilityAll (Player pl, const NumEffectState &state, Square pos, Offset o) |
利きに関係なく動けるマスの数 | |
int | countMobilitySafe (Player pl, const NumEffectState &state, Square pos, Offset o) |
相手の利きがない動けるマスを求める | |
std::ostream & | operator<< (std::ostream &os, MobilityContent const &mc) |
std::ostream & | operator<< (std::ostream &os, MobilityTable const &mt) |
bool | operator== (const MobilityTable &, const MobilityTable &) |
typedef long long v2di osl::mobility::__attribute__((vector_size(16))) |
kingMobility.h の 22 行で定義されています。
int osl::mobility::countMobilityAll | ( | Player | pl, | |
const NumEffectState & | state, | |||
Square | pos, | |||
Offset | o | |||
) | [inline] |
void osl::mobility::countMobilityBoth | ( | Player | P, | |
const NumEffectState & | state, | |||
Square | pos, | |||
Offset | o, | |||
int & | countAll, | |||
int & | countSafe | |||
) | [inline] |
countMobility.h の 35 行で定義されています。
参照先 osl::BLACK.
void osl::mobility::countMobilityBoth | ( | const NumEffectState & | state, | |
Square | pos, | |||
Offset | o, | |||
int & | countAll, | |||
int & | countSafe | |||
) | [inline] |
P : 駒pの持ち主 All : countAllを求めるかどうか? Safe : countAllを求めるかどうか? countAll : 利きに関係なく動けるマス countSafe : 相手の利きがない動けるマス 両方を求める.
countMobility.h の 20 行で定義されています。
参照先 osl::alt(), osl::NumEffectState::hasEffectAt(), osl::Square::isOnBoard(), osl::SimpleState::pieceAt(), と osl::Offset::zero().
参照元 osl::mobility::LanceMobility::countBoth(), osl::mobility::RookMobility::countHorizontalBoth(), と osl::mobility::RookMobility::countVerticalBoth().
int osl::mobility::countMobilitySafe | ( | Player | pl, | |
const NumEffectState & | state, | |||
Square | pos, | |||
Offset | o | |||
) | [inline] |
相手の利きがない動けるマスを求める
countMobility.h の 56 行で定義されています。
参照先 osl::BLACK.
参照元 osl::mobility::RookMobility::countHorizontalSafe(), osl::mobility::LanceMobility::countSafe(), osl::mobility::BishopMobility::countSafe(), と osl::mobility::RookMobility::countVerticalSafe().
std::ostream & osl::mobility::operator<< | ( | std::ostream & | os, | |
MobilityContent const & | mc | |||
) |
mobilityTable.cc の 28 行で定義されています。
std::ostream & osl::mobility::operator<< | ( | std::ostream & | os, | |
MobilityTable const & | mt | |||
) |
mobilityTable.cc の 35 行で定義されています。
bool osl::mobility::operator== | ( | const MobilityTable & | mt1, | |
const MobilityTable & | mt2 | |||
) |
mobilityTable.cc の 49 行で定義されています。