Public メソッド | Static Public 変数 | Private メソッド | Private 変数

クラス 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 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 変数

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]

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

参照先 dxs.

参照元 osl::checkmate::ImmediateCheckmateTable::ImmediateCheckmateTable(), と osl::PtypeTable::init().

int osl::BoardTable::getDyForBlack ( Direction  dir  )  const [inline]

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

参照先 dys.

参照元 osl::checkmate::ImmediateCheckmateTable::ImmediateCheckmateTable(), と osl::PtypeTable::init().

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

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

参照先 osl::BLACK.

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

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

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 ( Square  from,
Square  to 
) const [inline]
template<Player P>
Direction osl::BoardTable::getShort8 ( Square  from,
Square  to,
Offset o 
) const [inline]
Offset osl::BoardTable::getShort8OffsetUnsafe ( Square  from,
Square  to 
) const [inline]
template<Player P>
Direction osl::BoardTable::getShort8Unsafe ( Square  from,
Square  to 
) const [inline]
Direction osl::BoardTable::getShort8Unsafe ( Player  P,
Square  from,
Square  to 
) const [inline]

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

参照先 osl::BLACK.

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 ( Square  t,
Square  p0,
Square  p1 
) const [inline]

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

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

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

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

参照元 osl::move_probability::CoverFork::defending(), isBetweenSafe(), osl::move_probability::BlockLong::makeLongAttackOne(), osl::checkmate::detail::slowCheckDrop(), と osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece().

bool osl::BoardTable::isBetweenSafe ( Square  t,
Square  p0,
Square  p1 
) const [inline]

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

参照先 getShortOffsetNotKnight(), と isBetween().

参照元 osl::NumEffectState::wasCheckEvasion().

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

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

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

int osl::BoardTable::spaceCounts ( Square  from,
Square  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().


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義