|
My Project
|
#include <boardTable.h>
Public Member Functions | |
| const Offset | getOffsetForBlack (Direction dir) const |
| 黒にとってのoffsetを返す | |
| int | getDxForBlack (Direction dir) const |
| int | getDyForBlack (Direction dir) const |
| template<Player P> | |
| const Offset | getOffset (Direction dir) const |
| const Offset | getOffset (Player pl, Direction dir) const |
| const Square | nextSquare (Player P, Square pos, Direction dr) const |
| next position from pos for player P. | |
| BoardTable () | |
| template<Player P> | |
| Direction | getLongDirection (Offset32 offset32) const |
| Direction | getLongDirection (Player P, Offset32 offset32) const |
| template<Player P> | |
| Direction | getLongDirection (Square from, Square to) const |
| int | spaceCounts (Square from, Square to) const |
| fromとtoが長い利きを持つ位置にある時,間のマスの数を求める 一致している時は0 となりも0 関係ない時は-1 | |
| const Offset | getShortOffset (Offset32 offset32) const |
| Longの利きの可能性のあるoffsetの場合は, 反復に使う offsetを Shortの利きのoffsetの場合はそれ自身を返す. | |
| const Offset | getShortOffsetNotKnight (Offset32 offset32) const |
| Longの利きの可能性のあるoffsetの場合は, 反復に使う offsetを Knight以外のShortの利きのoffsetの場合はそれ自身を返す. | |
| Offset | getShort8OffsetUnsafe (Square from, Square to) const |
| 8方向にいない場合も適当なものを返す. | |
| template<Player P> | |
| Direction | getShort8Unsafe (Square from, Square to) const |
| 8方向にいない場合も適当なものを返す. | |
| Direction | getShort8Unsafe (Player P, Square from, Square to) const |
| template<Player P> | |
| Direction | getShort8 (Square from, Square to) const |
| template<Player P> | |
| Direction | getShort8 (Square from, Square to, Offset &o) const |
| bool | isBetween (Square t, Square p0, Square p1) const |
| p0, p1の間にtがあるかどうか. | |
| bool | isBetweenSafe (Square t, Square p0, Square p1) const |
Static Public Attributes | |
| static const CArray< Offset, DIRECTION_SIZE > | offsets |
| static const CArray< int, DIRECTION_SIZE > | dxs |
| static const CArray< int, DIRECTION_SIZE > | dys |
Private Member Functions | |
| template<Direction Dir> | |
| void | setDirections () |
| template<Direction Dir> | |
| void | setKnightDirections () |
| void | init () |
Private Attributes | |
| CArray< Direction, Offset32::SIZE > | directions |
| CArray< signed char, Offset::ONBOARD_OFFSET_SIZE > | short8Offset |
| CArray< unsigned char, Offset::ONBOARD_OFFSET_SIZE > | short8Dir |
| CArray< Offset, Offset32::SIZE > | short_offsets |
| CArray< Offset, Offset32::SIZE > | short_offsets_not_knight |
| CArray< int, Offset32Wide::SIZE > | space_counts |
Definition at line 12 of file boardTable.h.
| osl::BoardTable::BoardTable | ( | ) |
Definition at line 65 of file boardTable.cc.
References osl::BLACK, getOffset(), init(), and osl::UL.
|
inline |
Definition at line 40 of file boardTable.h.
References dxs.
|
inline |
Definition at line 43 of file boardTable.h.
References dys.
| P | どちらのPlayerにとっての方向かを指定 |
Definition at line 71 of file boardTable.h.
References osl::Offset32Base< Width, Width2 >::blackOffset32(), directions, osl::Offset32Base< Width, Width2 >::index(), osl::isValid(), and osl::Offset32Base< Width, Width2 >::isValid().
Referenced by getLongDirection(), and getLongDirection().
Definition at line 79 of file boardTable.h.
References osl::BLACK, and getLongDirection().
|
inline |
| P | どちらのPlayerにとっての方向かを指定 |
Definition at line 88 of file boardTable.h.
References getLongDirection().
Definition at line 47 of file boardTable.h.
References getOffsetForBlack(), and osl::sign().
Referenced by BoardTable(), getOffset(), and nextSquare().
Definition at line 50 of file boardTable.h.
References osl::BLACK, and getOffset().
黒にとってのoffsetを返す
Definition at line 37 of file boardTable.h.
References offsets.
Referenced by getOffset().
Definition at line 147 of file boardTable.h.
References getShort8Unsafe(), osl::Square::isOnBoard(), osl::Square::x(), and osl::Square::y().
|
inline |
Definition at line 155 of file boardTable.h.
References osl::BLACK, osl::inverse(), osl::Square::isOnBoard(), osl::Offset::makeDirect(), osl::Offset::ONBOARD_OFFSET_MIN, short8Dir, short8Offset, osl::Square::uintValue(), osl::Square::x(), and osl::Square::y().
8方向にいない場合も適当なものを返す.
Definition at line 126 of file boardTable.h.
References osl::Offset::makeDirect(), osl::Offset::ONBOARD_OFFSET_MIN, short8Offset, and osl::Square::uintValue().
Definition at line 140 of file boardTable.h.
References osl::BLACK, and getShort8Unsafe().
|
inline |
8方向にいない場合も適当なものを返す.
Definition at line 134 of file boardTable.h.
References osl::BLACK, osl::Offset::ONBOARD_OFFSET_MIN, short8Dir, and osl::Square::uintValue().
Referenced by getShort8(), and getShort8Unsafe().
Longの利きの可能性のあるoffsetの場合は, 反復に使う offsetを Shortの利きのoffsetの場合はそれ自身を返す.
利きの可能性のない場合は0を返す
Definition at line 110 of file boardTable.h.
References osl::Offset32Base< Width, Width2 >::index(), osl::Offset32Base< Width, Width2 >::isValid(), and short_offsets.
Longの利きの可能性のあるoffsetの場合は, 反復に使う offsetを Knight以外のShortの利きのoffsetの場合はそれ自身を返す.
Knightの利き, 利きの可能性のない場合は0を返す
Definition at line 119 of file boardTable.h.
References osl::Offset32Base< Width, Width2 >::index(), osl::Offset32Base< Width, Width2 >::isValid(), and short_offsets_not_knight.
Referenced by isBetweenSafe().
|
private |
Definition at line 45 of file boardTable.cc.
References osl::DIRECTION_INVALID_VALUE, directions, setDirections(), setKnightDirections(), short8Dir, short8Offset, short_offsets_not_knight, and space_counts.
Referenced by BoardTable().
p0, p1の間にtがあるかどうか.
(t,p0), (t,p1)のどちらかが8方向である時にのみ呼び出すこと 他方も8方向でないとしたらknightの関係
Definition at line 172 of file boardTable.h.
References osl::DIRECTION_INVALID_VALUE, osl::Offset::ONBOARD_OFFSET_MIN, short8Dir, and osl::Square::uintValue().
Referenced by isBetweenSafe().
Definition at line 179 of file boardTable.h.
References getShortOffsetNotKnight(), and isBetween().
next position from pos for player P.
答えが isOnBoard とは限らない
Definition at line 61 of file boardTable.h.
References getOffset(), and osl::Square::isOnBoard().
|
private |
Definition at line 7 of file boardTable.cc.
References osl::DirectionTraits< Dir >::blackDx, osl::DirectionTraits< Dir >::blackDy, directions, osl::Offset32Base< Width, Width2 >::index(), osl::Offset::intValue(), osl::longToShort(), osl::Offset::ONBOARD_OFFSET_MIN, short8Dir, short8Offset, short_offsets, short_offsets_not_knight, and space_counts.
Referenced by init().
|
private |
Definition at line 36 of file boardTable.cc.
References osl::DirectionTraits< Dir >::blackDx, osl::DirectionTraits< Dir >::blackDy, osl::Offset32Base< Width, Width2 >::index(), and short_offsets.
Referenced by init().
fromとtoが長い利きを持つ位置にある時,間のマスの数を求める 一致している時は0 となりも0 関係ない時は-1
Definition at line 99 of file boardTable.h.
References osl::Offset32Base< Width, Width2 >::index(), and space_counts.
|
private |
Definition at line 14 of file boardTable.h.
Referenced by getLongDirection(), init(), and setDirections().
|
static |
Definition at line 25 of file boardTable.h.
Referenced by getDxForBlack().
|
static |
Definition at line 26 of file boardTable.h.
Referenced by getDyForBlack().
|
static |
Definition at line 24 of file boardTable.h.
Referenced by getOffsetForBlack().
|
private |
Definition at line 17 of file boardTable.h.
Referenced by getShort8(), getShort8Unsafe(), init(), isBetween(), and setDirections().
|
private |
Definition at line 16 of file boardTable.h.
Referenced by getShort8(), getShort8OffsetUnsafe(), init(), and setDirections().
|
private |
Definition at line 18 of file boardTable.h.
Referenced by getShortOffset(), setDirections(), and setKnightDirections().
|
private |
Definition at line 19 of file boardTable.h.
Referenced by getShortOffsetNotKnight(), init(), and setDirections().
|
private |
Definition at line 21 of file boardTable.h.
Referenced by init(), setDirections(), and spaceCounts().