|
| enum | osl::Player { osl::BLACK =0
, osl::WHITE = -1
} |
| enum | osl::Ptype {
osl::PTYPE_EMPTY =0
, osl::PTYPE_EDGE =1
, osl::PPAWN =2
, osl::PLANCE =3
,
osl::PKNIGHT =4
, osl::PSILVER =5
, osl::PBISHOP =6
, osl::PROOK =7
,
osl::KING =8
, osl::GOLD =9
, osl::PAWN =10
, osl::LANCE =11
,
osl::KNIGHT =12
, osl::SILVER =13
, osl::BISHOP =14
, osl::ROOK =15
,
osl::PTYPE_MIN =0
, osl::PTYPE_BASIC_MIN =KING
, osl::PTYPE_PIECE_MIN =2
, osl::PTYPE_MAX =15
} |
| | 駒の種類を4ビットでコード化する More...
|
| enum | osl::PtypeO { osl::PTYPEO_MIN = PTYPE_EMPTY-16
, osl::PTYPEO_MAX = 15
} |
| | Player + Ptype [-15, 15] PtypeO の O は Owner の O. More...
|
| enum | osl::Direction {
osl::SHORT_DIRECTION_MIN =0
, osl::SHORT8_DIRECTION_MIN =0
, osl::UL =0
, osl::U =1
,
osl::UR =2
, osl::L =3
, osl::R =4
, osl::DL =5
,
osl::D =6
, osl::DR =7
, osl::SHORT8_DIRECTION_MAX =7
, osl::UUL =8
,
osl::UUR =9
, osl::LONG_DIRECTION_MIN =10
, osl::LONG_UL =10
, osl::LONG_U =11
,
osl::LONG_UR =12
, osl::LONG_L =13
, osl::LONG_R =14
, osl::LONG_DL =15
,
osl::LONG_D =16
, osl::LONG_DR =17
, osl::LONG_DIRECTION_MAX =17
, osl::DIRECTION_MIN =0
,
osl::SHORT_DIRECTION_MAX =9
, osl::SHORT_DIRECTION_SIZE =10
, osl::DIRECTION_MAX =17
, osl::DIRECTION_INVALID_VALUE =18
,
osl::DIRECTION_SIZE =18
} |
| enum | osl::Move16 { osl::MOVE16_NONE = 0
} |
| | 16bit 表現 More...
|
|
| constexpr Player | osl::alt (Player player) |
| constexpr int | osl::playerToIndex (Player player) |
| constexpr Player | osl::indexToPlayer (int n) |
| constexpr int | osl::sign (Player player) |
| constexpr int | osl::playerToMask (Player player) |
| int | osl::operator+ (Player, int) |
| int | osl::operator+ (int, Player) |
| int | osl::operator- (Player, int) |
| int | osl::operator- (int, Player) |
| int | osl::operator* (Player, int) |
| int | osl::operator* (int, Player) |
| int | osl::operator/ (Player, int) |
| int | osl::operator/ (int, Player) |
| bool | osl::isValid (Player player) |
| | cast等で作られたplayerが正しいかどうかを返す
|
| std::ostream & | osl::operator<< (std::ostream &os, Player player) |
| std::istream & | osl::operator>> (std::istream &is, Ptype &ptype) |
| std::ostream & | osl::operator<< (std::ostream &os, const Ptype ptype) |
| bool | osl::isValid (Ptype ptype) |
| | int等からcastして作ったptypeが,正しい範囲に入っているかどうかのチェック
|
| constexpr bool | osl::isPiece (Ptype ptype) |
| | ptypeが空白やEDGEでないかのチェック
|
| bool | osl::isBasic (Ptype ptype) |
| | ptypeが基本型(promoteしていない)かのチェック
|
| bool | osl::isPromoted (Ptype ptype) |
| | ptypeがpromote後の型かどうかのチェック
|
| bool | osl::canPromote (Ptype ptype) |
| | ptypeがpromote可能な型かどうかのチェック promote済みの場合はfalseを返す
|
| Ptype | osl::unpromote (Ptype ptype) |
| | ptypeがpromote後の型の時に,promote前の型を返す. promoteしていない型の時はそのまま返す
|
| constexpr Ptype | osl::unpromoteSafe (Ptype ptype) |
| Ptype | osl::promote (Ptype ptype) |
| | promote可能なptypeに対して,promote後の型を返す promote不可のptypeを与えてはいけない.
|
| bool | osl::isMajorBasic (Ptype ptype) |
| bool | osl::isMajor (Ptype ptype) |
| bool | osl::isMajorNonPieceOK (Ptype ptype) |
| unsigned int | osl::ptypeOIndex (PtypeO ptypeo) |
| PtypeO | osl::newPtypeO (Player player, Ptype ptype) |
| Ptype | osl::getPtype (PtypeO ptypeO) |
| PtypeO | osl::promote (PtypeO ptypeO) |
| | pieceをpromoteさせる.
|
| PtypeO | osl::promoteWithMask (PtypeO ptypeO, int promoteMask) |
| | pieceを引数次第でpromoteさせる
|
| PtypeO | osl::unpromote (PtypeO ptypeO) |
| | pieceをunpromoteさせる.
|
| bool | osl::isValidPtypeO (int ptypeO) |
| bool | osl::isPiece (PtypeO ptypeO) |
| | EMPTY, EDGEではない
|
| Player | osl::getOwner (PtypeO ptypeO) |
| PtypeO | osl::captured (PtypeO ptypeO) |
| | unpromoteすると共に,ownerを反転する.
|
| PtypeO | osl::alt (PtypeO ptypeO) |
| | owner を反転する
|
| PtypeO | osl::altIfPiece (PtypeO ptypeO) |
| | Pieceの時にはowner を反転する
|
| bool | osl::canPromote (PtypeO ptypeO) |
| bool | osl::isPromoted (PtypeO ptypeO) |
| | ptypeOが promote済みかどうか
|
| const PtypeO PTYPEO_EDGE | osl::__attribute__ ((unused)) |
| std::ostream & | osl::operator<< (std::ostream &os, const PtypeO ptypeO) |
| constexpr bool | osl::isShort (Direction d) |
| constexpr bool | osl::isShort8 (Direction d) |
| constexpr bool | osl::isLong (Direction d) |
| constexpr Direction | osl::inverseUnsafe (Direction d) |
| constexpr Direction | osl::inverse (Direction d) |
| constexpr Direction | osl::primDir (Direction d) |
| | 8方向について,primitiveな4方向を求める
|
| constexpr Direction | osl::primDirUnsafe (Direction d) |
| | 8方向について,primitiveな4方向を求める dとしてknight, INVALIDなども来る
|
| bool | osl::isValid (Direction d) |
| constexpr Direction | osl::longToShort (Direction d) |
| constexpr Direction | osl::shortToLong (Direction d) |
| | 引数に longDirを与えてはいけない
|
| constexpr int | osl::dirToMask (Direction dir) |
| std::ostream & | osl::operator<< (std::ostream &os, const Direction d) |
| bool | osl::operator== (Square l, Square r) |
| Offset | osl::newOffset (int dx, int dy) |
| | @obsolete
|
| bool | osl::operator== (Offset l, Offset r) |
| bool | osl::operator!= (Offset l, Offset r) |
| bool | osl::operator< (Offset l, Offset r) |
| std::ostream & | osl::operator<< (std::ostream &, Offset) |
| bool | osl::operator!= (Square l, Square r) |
| bool | osl::operator< (Square l, Square r) |
| bool | osl::operator> (Square l, Square r) |
| std::ostream & | osl::operator<< (std::ostream &, Square) |
| bool | osl::operator== (Piece l, Piece r) |
| bool | osl::operator< (Piece l, Piece r) |
| bool | osl::operator!= (Piece l, Piece r) |
| std::ostream & | osl::operator<< (std::ostream &os, const Piece piece) |
| bool | osl::operator< (Move lhs, Move rhs) |
| bool | osl::operator== (Move lhs, Move rhs) |
| bool | osl::operator!= (Move lhs, Move rhs) |
| std::ostream & | osl::operator<< (std::ostream &os, Move move) |