All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes
osl::BoardTable Class Reference

#include <boardTable.h>

Collaboration diagram for osl::BoardTable:
Collaboration graph
[legend]

List of all members.

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::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

Detailed Description

Definition at line 12 of file boardTable.h.


Constructor & Destructor Documentation

Definition at line 65 of file boardTable.cc.

References osl::BLACK, and osl::UL.


Member Function Documentation

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

Definition at line 79 of file boardTable.h.

References osl::BLACK.

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

Definition at line 88 of file boardTable.h.

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

Definition at line 47 of file boardTable.h.

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

Referenced by osl::move_probability::AddEffectLong::addOne(), osl::move_probability::KingBlockade::blockAll(), osl::move_classifier::PawnDropCheckmate< P >::canEscape(), osl::move_probability::StateInfo::clearOldCache(), osl::checkmate::EdgeTable::EdgeTable(), osl::rating::PatternLong2::find(), osl::move_probability::StateInfo::findCheckmateDefender(), osl::effect_util::VirtualPin::findDirection(), osl::effect_util::Pin::findDirection(), osl::search::BreakThreatmate::generate(), osl::move_generator::OpenKingRoad< P >::generateDir(), osl::checkmate::ImmediateCheckmate::hasCheckmateMoveDir(), osl::effect_util::Neighboring8Direct::Table::init(), osl::effect_util::Neighboring8Effect::Table::init(), osl::checkmate::ProofNumberTable::libertyAfterAllMove(), osl::move_probability::LanceAttack::match(), osl::move_probability::LureDefender::match(), osl::move_probability::OpposingPawn::match(), osl::move_probability::DropAfterOpposingPawn::match(), osl::move_probability::CoverPawn::match(), osl::move_probability::KingBlockade::match(), osl::eval::ml::SilverFork::matchGold(), osl::eval::ml::SilverFork::matchRook(), osl::rating::PatternLong::nextPieceOrEnd(), nextSquare(), osl::Offset::Offset(), osl::effect::AddMaskAction< Liberty, P, T >::operator()(), osl::checkmate::detail::slowCheckDrop(), osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece(), and osl::move_probability::StateInfo::updatePinnedGenerals().

const Offset osl::BoardTable::getOffset ( Player  pl,
Direction  dir 
) const [inline]

Definition at line 50 of file boardTable.h.

References osl::BLACK.

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]

Definition at line 140 of file boardTable.h.

References 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]

Definition at line 45 of file boardTable.cc.

References osl::DIRECTION_INVALID_VALUE.

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(), osl::move_probability::BlockLong::makeLongAttackOne(), osl::checkmate::detail::slowCheckDrop(), and osl::checkmate::ImmediateCheckmate::slowHasCheckmateMoveDirPiece().

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::state::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]

Definition at line 36 of file boardTable.cc.

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

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

Definition at line 14 of file boardTable.h.

Referenced by getLongDirection(), and setDirections().

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

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

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

Definition at line 17 of file boardTable.h.

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

Definition at line 16 of file boardTable.h.

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

Definition at line 18 of file boardTable.h.

Referenced by getShortOffset(), and setDirections().

Definition at line 19 of file boardTable.h.

Referenced by getShortOffsetNotKnight(), and setDirections().

Definition at line 21 of file boardTable.h.

Referenced by setDirections(), and spaceCounts().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines