My Project
Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
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_SIZEoffsets
 
static const CArray< int, DIRECTION_SIZEdxs
 
static const CArray< int, DIRECTION_SIZEdys
 

Private Member Functions

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

Private Attributes

CArray< Direction, Offset32::SIZEdirections
 
CArray< signed char, Offset::ONBOARD_OFFSET_SIZEshort8Offset
 
CArray< unsigned char, Offset::ONBOARD_OFFSET_SIZEshort8Dir
 
CArray< Offset, Offset32::SIZEshort_offsets
 
CArray< Offset, Offset32::SIZEshort_offsets_not_knight
 
CArray< int, Offset32Wide::SIZEspace_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, and osl::UL.

Member Function Documentation

◆ getDxForBlack()

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

◆ getDyForBlack()

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

◆ getLongDirection() [1/3]

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

◆ getLongDirection() [2/3]

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

Definition at line 79 of file boardTable.h.

References osl::BLACK.

◆ 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.

◆ getOffset() [1/2]

template<Player P>
const Offset osl::BoardTable::getOffset ( Direction  dir) const
inline

◆ 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.

◆ getOffsetForBlack()

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

◆ getShort8() [1/2]

template<Player P>
Direction osl::BoardTable::getShort8 ( Square  from,
Square  to 
) const
inline

◆ getShort8() [2/2]

template<Player P>
Direction osl::BoardTable::getShort8 ( Square  from,
Square  to,
Offset o 
) const
inline

◆ 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.

◆ getShort8Unsafe() [2/2]

template<Player P>
Direction osl::BoardTable::getShort8Unsafe ( Square  from,
Square  to 
) const
inline

◆ 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.

Referenced by osl::rating::PatternBlock::find(), osl::eval::ml::BishopRookFork::findDropInLine(), osl::NumEffectState::hasEffectIf(), osl::effect_util::Neighboring8Direct::Table::hasEffectOrAdditional(), osl::SimpleState::isEmptyBetween(), and osl::SimpleState::isEmptyBetween().

◆ getShortOffsetNotKnight()

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

◆ init()

void osl::BoardTable::init ( )
private

Definition at line 45 of file boardTable.cc.

References osl::DIRECTION_INVALID_VALUE.

◆ 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 osl::move_probability::CoverFork::defending(), isBetweenSafe(), and osl::move_probability::BlockLong::makeLongAttackOne().

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

Referenced by osl::NumEffectState::wasCheckEvasion().

◆ nextSquare()

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

◆ setDirections()

template<osl::Direction Dir>
void osl::BoardTable::setDirections ( )
private

◆ setKnightDirections()

template<osl::Direction Dir>
void osl::BoardTable::setKnightDirections ( )
private

Definition at line 36 of file boardTable.cc.

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

◆ 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(), 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
} }

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(), 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(), and setDirections().

◆ short_offsets

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

Definition at line 18 of file boardTable.h.

Referenced by getShortOffset(), and setDirections().

◆ 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(), and setDirections().

◆ space_counts

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

Definition at line 21 of file boardTable.h.

Referenced by setDirections(), and spaceCounts().


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