クラス osl::BoardTable

#include <boardTable.h>

osl::BoardTableのコラボレーション図
Collaboration graph
[凡例]

すべてのメンバ一覧

Public メソッド

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 Position nextPosition (Player P, Position 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 (Position from, Position to) const
int spaceCounts (Position from, Position 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 (Position from, Position to) const
 8方向にいない場合も適当なものを返す.
template<Player P>
Direction getShort8Unsafe (Position from, Position to) const
 8方向にいない場合も適当なものを返す.
template<Player P>
Direction getShort8 (Position from, Position to) const
template<Player P>
Direction getShort8 (Position from, Position to, Offset &o) const
bool isBetween (Position t, Position p0, Position p1) const
 p0, p1の間にtがあるかどうか.

Static Public 変数

static const CArray< Offset,
DIRECTION_SIZE > 
offsets
static const CArray< int,
DIRECTION_SIZE > 
dxs
static const CArray< int,
DIRECTION_SIZE > 
dys

Private メソッド

template<Direction Dir>
void setDirections ()
template<Direction Dir>
void setKnightDirections ()
void init ()

Private 変数

CArray< Direction, Offset32::SIZEdirections
CArray< signed char,
Offset::ONBOARD_OFFSET_SIZE > 
short8Offset
CArray< unsigned char,
Offset::ONBOARD_OFFSET_SIZE > 
short8Dir
CArray< Offset, Offset32::SIZEshort_offsets
CArray< Offset, Offset32::SIZEshort_offsets_not_knight
CArray< int, Offset32Wide::SIZEspace_counts

説明

boardTable.h12 行で定義されています。


コンストラクタとデストラクタ

osl::BoardTable::BoardTable (  ) 

boardTable.cc65 行で定義されています。

参照先 osl::BLACK, getOffset(), init(), と osl::UL.


関数

int osl::BoardTable::getDxForBlack ( Direction  dir  )  const [inline]
int osl::BoardTable::getDyForBlack ( Direction  dir  )  const [inline]
template<Player P>
Direction osl::BoardTable::getLongDirection ( Position  from,
Position  to 
) const [inline]
引数:
P どちらのPlayerにとっての方向かを指定

boardTable.h88 行で定義されています。

Direction osl::BoardTable::getLongDirection ( Player  P,
Offset32  offset32 
) const [inline]

boardTable.h79 行で定義されています。

参照先 osl::BLACK.

template<Player P>
Direction osl::BoardTable::getLongDirection ( Offset32  offset32  )  const [inline]
const Offset osl::BoardTable::getOffset ( Player  pl,
Direction  dir 
) const [inline]

boardTable.h50 行で定義されています。

参照先 osl::BLACK.

template<Player P>
const Offset osl::BoardTable::getOffset ( Direction  dir  )  const [inline]
const Offset osl::BoardTable::getOffsetForBlack ( Direction  dir  )  const [inline]
template<Player P>
Direction osl::BoardTable::getShort8 ( Position  from,
Position  to,
Offset o 
) const [inline]
template<Player P>
Direction osl::BoardTable::getShort8 ( Position  from,
Position  to 
) const [inline]
Offset osl::BoardTable::getShort8OffsetUnsafe ( Position  from,
Position  to 
) const [inline]
template<Player P>
Direction osl::BoardTable::getShort8Unsafe ( Position  from,
Position  to 
) const [inline]
const Offset osl::BoardTable::getShortOffset ( Offset32  offset32  )  const [inline]
const Offset osl::BoardTable::getShortOffsetNotKnight ( Offset32  offset32  )  const [inline]
void osl::BoardTable::init (  )  [private]
bool osl::BoardTable::isBetween ( Position  t,
Position  p0,
Position  p1 
) const [inline]

p0, p1の間にtがあるかどうか.

(t,p0), (t,p1)のどちらかが8方向である時にのみ呼び出すこと 他方も8方向でないとしたらknightの関係

boardTable.h166 行で定義されています。

参照先 osl::DIRECTION_INVALID_VALUE, osl::Offset::ONBOARD_OFFSET_MIN, short8Dir, と osl::Position::uintValue().

参照元 osl::checkmate::detail::slowCheckDrop(), と osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece().

const Position osl::BoardTable::nextPosition ( Player  P,
Position  pos,
Direction  dr 
) const [inline]
template<osl::Direction Dir>
void osl::BoardTable::setDirections (  )  [inline, private]
template<osl::Direction Dir>
void osl::BoardTable::setKnightDirections (  )  [inline, private]

boardTable.cc36 行で定義されています。

参照先 osl::Offset32Base< Width, Width2 >::index(), と short_offsets.

int osl::BoardTable::spaceCounts ( Position  from,
Position  to 
) const [inline]

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

boardTable.h99 行で定義されています。

参照先 osl::Offset32Base< Width, Width2 >::index(), と space_counts.


変数

boardTable.h14 行で定義されています。

参照元 getLongDirection(), init(), と setDirections().

const CArray< int, DIRECTION_SIZE > osl::BoardTable::dxs [static]
初期値:
 { {
    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
  } }

boardTable.h25 行で定義されています。

参照元 getDxForBlack().

const CArray< int, DIRECTION_SIZE > osl::BoardTable::dys [static]
初期値:
 { {
    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
  } }

boardTable.h26 行で定義されています。

参照元 getDyForBlack().

const CArray< Offset, DIRECTION_SIZE > osl::BoardTable::offsets [static]
初期値:
 { {
    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()
  } }

boardTable.h24 行で定義されています。

参照元 getOffsetForBlack().

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

boardTable.h17 行で定義されています。

参照元 getShort8(), getShort8Unsafe(), init(), isBetween(), と setDirections().

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

boardTable.h16 行で定義されています。

参照元 getShort8(), getShort8OffsetUnsafe(), init(), と setDirections().

boardTable.h18 行で定義されています。

参照元 getShortOffset(), setDirections(), と setKnightDirections().

boardTable.h19 行で定義されています。

参照元 getShortOffsetNotKnight(), init(), と setDirections().

boardTable.h21 行で定義されています。

参照元 init(), setDirections(), と spaceCounts().


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義
Sun May 16 09:57:48 2010に生成されました。  doxygen 1.6.3