osl::BoardTable Class Reference

`#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

## Detailed Description

Definition at line 12 of file boardTable.h.

## Constructor & Destructor Documentation

## BoardTable()

osl::BoardTable::BoardTable | ( |  | ) |

Definition at line 65 of file boardTable.cc.

References osl::BLACK, getOffset(), init(), and osl::UL.

## Member Function Documentation

## getDxForBlack()

int osl::BoardTable::getDxForBlack | ( | Direction | dir | ) | const

inline

Definition at line 40 of file boardTable.h.

References dxs.

## getDyForBlack()

int osl::BoardTable::getDyForBlack | ( | Direction | dir | ) | const

inline

Definition at line 43 of file boardTable.h.

References dys.

## getLongDirection() [1/3]

template<Player P>

Direction osl::BoardTable::getLongDirection | ( | Offset32 | offset32 | ) | const

inline

Parameters

  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().

## getLongDirection() [2/3]

Direction osl::BoardTable::getLongDirection | ( | Player | P,
|  | Offset32 | offset32 ) const

inline

Definition at line 79 of file boardTable.h.

References osl::BLACK, and getLongDirection().

## getLongDirection() [3/3]

template<Player P>

Direction osl::BoardTable::getLongDirection | ( | Square | from,
|  | Square | to ) const

inline

Parameters

  P | どちらのPlayerにとっての方向かを指定

Definition at line 88 of file boardTable.h.

References getLongDirection().

## getOffset() [1/2]

template<Player P>

const Offset osl::BoardTable::getOffset | ( | Direction | dir | ) | const

inline

Definition at line 47 of file boardTable.h.

References getOffsetForBlack(), and osl::sign().

Referenced by BoardTable(), getOffset(), and nextSquare().

## getOffset() [2/2]

const Offset osl::BoardTable::getOffset | ( | Player | pl,
|  | Direction | dir ) const

inline

Definition at line 50 of file boardTable.h.

References osl::BLACK, and getOffset().

## getOffsetForBlack()

const Offset osl::BoardTable::getOffsetForBlack | ( | Direction | dir | ) | const

inline

黒にとってのoffsetを返す

Definition at line 37 of file boardTable.h.

References offsets.

Referenced by getOffset().

## getShort8() [1/2]

template<Player P>

Direction osl::BoardTable::getShort8 | ( | Square | from,
|  | Square | to ) const

inline

Definition at line 147 of file boardTable.h.

References getShort8Unsafe(), osl::Square::isOnBoard(), osl::Square::x(), and osl::Square::y().

## getShort8() [2/2]

template<Player P>

Direction osl::BoardTable::getShort8 | ( | Square | from,
|  | Square | to,
|  | Offset & | o ) const

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().

## getShort8OffsetUnsafe()

Offset osl::BoardTable::getShort8OffsetUnsafe | ( | Square | from,
|  | Square | to ) const

inline

8方向にいない場合も適当なものを返す．

Definition at line 126 of file boardTable.h.

References osl::Offset::makeDirect(), osl::Offset::ONBOARD_OFFSET_MIN, short8Offset, and osl::Square::uintValue().

## getShort8Unsafe() [1/2]

Direction osl::BoardTable::getShort8Unsafe | ( | Player | P,
|  | Square | from,
|  | Square | to ) const

inline

Definition at line 140 of file boardTable.h.

References osl::BLACK, and getShort8Unsafe().

## getShort8Unsafe() [2/2]

template<Player P>

Direction osl::BoardTable::getShort8Unsafe | ( | Square | from,
|  | Square | to ) const

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().

## getShortOffset()

const Offset osl::BoardTable::getShortOffset | ( | Offset32 | offset32 | ) | const

inline

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.

## getShortOffsetNotKnight()

const Offset osl::BoardTable::getShortOffsetNotKnight | ( | Offset32 | offset32 | ) | const

inline

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().

## init()

void osl::BoardTable::init | ( |  | ) |

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().

## isBetween()

bool osl::BoardTable::isBetween | ( | Square | t,
|  | Square | p0,
|  | Square | p1 ) const

inline

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().

## isBetweenSafe()

bool osl::BoardTable::isBetweenSafe | ( | Square | t,
|  | Square | p0,
|  | Square | p1 ) const

inline

Definition at line 179 of file boardTable.h.

References getShortOffsetNotKnight(), and isBetween().

## nextSquare()

const Square osl::BoardTable::nextSquare | ( | Player | P,
|  | Square | pos,
|  | Direction | dr ) const

inline

next position from pos for player P.

答えが isOnBoard とは限らない

Definition at line 61 of file boardTable.h.

References getOffset(), and osl::Square::isOnBoard().

## setDirections()

template<osl::Direction Dir>

void osl::BoardTable::setDirections | ( |  | ) |

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().

## setKnightDirections()

template<osl::Direction Dir>

void osl::BoardTable::setKnightDirections | ( |  | ) |

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().

## spaceCounts()

int osl::BoardTable::spaceCounts | ( | Square | from,
|  | Square | to ) const

inline

fromとtoが長い利きを持つ位置にある時，間のマスの数を求める 一致している時は0 となりも0 関係ない時は-1

Definition at line 99 of file boardTable.h.

References osl::Offset32Base< Width, Width2 >::index(), and space_counts.

## Member Data Documentation

## directions

CArray<Direction,Offset32::SIZE> osl::BoardTable::directions

private

Definition at line 14 of file boardTable.h.

Referenced by getLongDirection(), init(), and setDirections().

## dxs

const CArray< int, DIRECTION_SIZE > osl::BoardTable::dxs

static

Initial value:
= { {
DirectionTraits<static_cast<Direction>(0)>::blackDx,
DirectionTraits<static_cast<Direction>(1)>::blackDx,
DirectionTraits<static_cast<Direction>(2)>::blackDx,
DirectionTraits<static_cast<Direction>(3)>::blackDx,
DirectionTraits<static_cast<Direction>(4)>::blackDx,
DirectionTraits<static_cast<Direction>(5)>::blackDx,
DirectionTraits<static_cast<Direction>(6)>::blackDx,
DirectionTraits<static_cast<Direction>(7)>::blackDx,
DirectionTraits<static_cast<Direction>(8)>::blackDx,
DirectionTraits<static_cast<Direction>(9)>::blackDx,
DirectionTraits<static_cast<Direction>(10)>::blackDx,
DirectionTraits<static_cast<Direction>(11)>::blackDx,
DirectionTraits<static_cast<Direction>(12)>::blackDx,
DirectionTraits<static_cast<Direction>(13)>::blackDx,
DirectionTraits<static_cast<Direction>(14)>::blackDx,
DirectionTraits<static_cast<Direction>(15)>::blackDx,
DirectionTraits<static_cast<Direction>(16)>::blackDx,
DirectionTraits<static_cast<Direction>(17)>::blackDx
} }
osl::DirectionTraits
Definition directionTraits.h:225

Definition at line 25 of file boardTable.h.

Referenced by getDxForBlack().

## dys

const CArray< int, DIRECTION_SIZE > osl::BoardTable::dys

static

Initial value:
= { {
DirectionTraits<static_cast<Direction>(0)>::blackDy,
DirectionTraits<static_cast<Direction>(1)>::blackDy,
DirectionTraits<static_cast<Direction>(2)>::blackDy,
DirectionTraits<static_cast<Direction>(3)>::blackDy,
DirectionTraits<static_cast<Direction>(4)>::blackDy,
DirectionTraits<static_cast<Direction>(5)>::blackDy,
DirectionTraits<static_cast<Direction>(6)>::blackDy,
DirectionTraits<static_cast<Direction>(7)>::blackDy,
DirectionTraits<static_cast<Direction>(8)>::blackDy,
DirectionTraits<static_cast<Direction>(9)>::blackDy,
DirectionTraits<static_cast<Direction>(10)>::blackDy,
DirectionTraits<static_cast<Direction>(11)>::blackDy,
DirectionTraits<static_cast<Direction>(12)>::blackDy,
DirectionTraits<static_cast<Direction>(13)>::blackDy,
DirectionTraits<static_cast<Direction>(14)>::blackDy,
DirectionTraits<static_cast<Direction>(15)>::blackDy,
DirectionTraits<static_cast<Direction>(16)>::blackDy,
DirectionTraits<static_cast<Direction>(17)>::blackDy
} }

Definition at line 26 of file boardTable.h.

Referenced by getDyForBlack().

## offsets

const CArray< Offset, DIRECTION_SIZE > osl::BoardTable::offsets

static

Initial value:
= { {
DirectionTraits<static_cast<Direction>(0)>::blackOffset(),
DirectionTraits<static_cast<Direction>(1)>::blackOffset(),
DirectionTraits<static_cast<Direction>(2)>::blackOffset(),
DirectionTraits<static_cast<Direction>(3)>::blackOffset(),
DirectionTraits<static_cast<Direction>(4)>::blackOffset(),
DirectionTraits<static_cast<Direction>(5)>::blackOffset(),
DirectionTraits<static_cast<Direction>(6)>::blackOffset(),
DirectionTraits<static_cast<Direction>(7)>::blackOffset(),
DirectionTraits<static_cast<Direction>(8)>::blackOffset(),
DirectionTraits<static_cast<Direction>(9)>::blackOffset(),
DirectionTraits<static_cast<Direction>(10)>::blackOffset(),
DirectionTraits<static_cast<Direction>(11)>::blackOffset(),
DirectionTraits<static_cast<Direction>(12)>::blackOffset(),
DirectionTraits<static_cast<Direction>(13)>::blackOffset(),
DirectionTraits<static_cast<Direction>(14)>::blackOffset(),
DirectionTraits<static_cast<Direction>(15)>::blackOffset(),
DirectionTraits<static_cast<Direction>(16)>::blackOffset(),
DirectionTraits<static_cast<Direction>(17)>::blackOffset()
} }

Definition at line 24 of file boardTable.h.

Referenced by getOffsetForBlack().

## short8Dir

CArray<unsigned char,Offset::ONBOARD_OFFSET_SIZE> osl::BoardTable::short8Dir

private

Definition at line 17 of file boardTable.h.

Referenced by getShort8(), getShort8Unsafe(), init(), isBetween(), and setDirections().

## short8Offset

CArray<signed char,Offset::ONBOARD_OFFSET_SIZE> osl::BoardTable::short8Offset

private

Definition at line 16 of file boardTable.h.

Referenced by getShort8(), getShort8OffsetUnsafe(), init(), and setDirections().

## short_offsets

CArray<Offset, Offset32::SIZE> osl::BoardTable::short_offsets

private

Definition at line 18 of file boardTable.h.

Referenced by getShortOffset(), setDirections(), and setKnightDirections().

## short_offsets_not_knight

CArray<Offset, Offset32::SIZE> osl::BoardTable::short_offsets_not_knight

private

Definition at line 19 of file boardTable.h.

Referenced by getShortOffsetNotKnight(), init(), and setDirections().

## space_counts

CArray<int,Offset32Wide::SIZE> osl::BoardTable::space_counts

private

Definition at line 21 of file boardTable.h.

Referenced by init(), setDirections(), and spaceCounts().

The documentation for this class was generated from the following files:

- boardTable.h
- boardTable.cc
- tables.cc