クラス osl::PtypeTable

#include <ptypeTable.h>

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

すべてのメンバ一覧

Public メソッド

 PtypeTable ()
unsigned int getShortMoveMask (Player p, PtypeO ptypeo, Direction dir) const
mask_t getMaskLow (Ptype ptype) const
int getIndex (Ptype ptype) const
bool hasLongMove (Ptype ptype) const
 遅くて良い?
bool isBetterToPromote (Ptype ptype) const
int getCanDropLimit (Player player, Ptype ptype) const
bool canDropTo (Player pl, Ptype ptype, Position pos) const
const char * getName (Ptype ptype) const
const char * getCsaName (Ptype ptype) const
int getMoveMask (Ptype ptype) const
int getIndexMin (Ptype ptype) const
int getIndexLimit (Ptype ptype) const
const EffectContent getEffect (PtypeO ptypeo, Position from, Position to) const
 fromにいるptypeoがtoに利きを持つか?
const EffectContent & getEffect (PtypeO ptypeo, Offset32 offset32) const
const EffectContent getEffectNotLongU (PtypeO ptypeo, Position from, Position to) const
 ptypeo が,自分から offset のところに効きを持つか? U除く
bool hasUnblockableEffect (PtypeO attacker, Position from, Position to) const

Static Public メソッド

static int getKingIndex (Player p)

Private メソッド

template<Ptype T>
void initPtypeSub (Int2Type< false > isBasic)
template<Ptype T>
void initPtypeSub (Int2Type< true > isBasic)
template<Ptype T>
void initPtype ()
void init ()
bool canDropTo (Ptype ptype, Position pos, Int2Type< BLACK >) const
bool canDropTo (Ptype ptype, Position pos, Int2Type< WHITE >) const
EffectContent & effect (PtypeO ptypeo, Offset32 offset32)

Private 変数

CArray< mask_t, PTYPE_SIZE > numMaskLows
CArray< int, PTYPE_SIZE > numIndices
CArray< const char *, PTYPE_SIZE > names
CArray< const char *, PTYPE_SIZE > csaNames
CArray< bool, PTYPE_SIZE > betterToPromote
CArray< int, PTYPE_SIZE > moveMasks
CArray< int, PTYPE_SIZE > indexMins
CArray< int, PTYPE_SIZE > indexLimits
CArray2d< int, 2, PTYPE_SIZE > canDropLimit
CArray2d< EffectContent,
PTYPEO_SIZE, Offset32::SIZE > 
effectTable
CArray2d< EffectContent,
PTYPEO_SIZE, Offset32::SIZE > 
effectTableNotLongU
CArray2d< unsigned int,
2, SHORT_DIRECTION_SIZE > 
shortMoveMask

説明

ptypeTable.h の 18 行で定義されています。


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

osl::PtypeTable::PtypeTable (  ) 

関数

bool osl::PtypeTable::canDropTo ( Player  pl,
Ptype  ptype,
Position  pos 
) const [inline]

ptypeTable.h の 91 行で定義されています。

参照先 osl::BLACK, と canDropTo().

bool osl::PtypeTable::canDropTo ( Ptype  ptype,
Position  pos,
Int2Type< WHITE >   
) const [inline, private]

ptypeTable.h の 86 行で定義されています。

参照先 getCanDropLimit(), osl::WHITE, と osl::Position::y().

bool osl::PtypeTable::canDropTo ( Ptype  ptype,
Position  pos,
Int2Type< BLACK >   
) const [inline, private]
EffectContent& osl::PtypeTable::effect ( PtypeO  ptypeo,
Offset32  offset32 
) [inline, private]
int osl::PtypeTable::getCanDropLimit ( Player  player,
Ptype  ptype 
) const [inline]

ptypeTable.h の 75 行で定義されています。

参照先 canDropLimit, osl::isPromoted(), osl::isValid(), と osl::playerToIndex().

参照元 canDropTo().

const char* osl::PtypeTable::getCsaName ( Ptype  ptype  )  const [inline]
const EffectContent& osl::PtypeTable::getEffect ( PtypeO  ptypeo,
Offset32  offset32 
) const [inline]
const EffectContent osl::PtypeTable::getEffect ( PtypeO  ptypeo,
Position  from,
Position  to 
) const [inline]

fromにいるptypeoがtoに利きを持つか?

引数:
ptypeo - 駒の種類
from - 駒の位置
to - 利きをチェックするマスの位置

ptypeTable.h の 135 行で定義されています。

参照先 osl::Position::isOnBoard().

参照元 osl::checkmate::Dfpn::attack(), osl::move_generator::addeffect8::canAddLongEffect(), osl::checkmate::FixedDepthSearcher2::defenseEstimation(), osl::checkmate::FixedDepthSearcher::defenseEstimation(), osl::search::QuiescenceSearch2< EvalT >::examineTakeBack2(), osl::effect_util::AdditionalEffect::find(), osl::eval::See::findAdditionalPieces(), osl::effect_util::Pin::findPtype(), osl::checkmate::Dfpn::generateCheck(), osl::move_generator::addeffect8::generateLongDropWithOffset(), osl::move_generator::without_effect::generateLongMove(), osl::move_generator::addeffect8::hasEffect(), osl::state::NumEffectState::hasEffectFromTo(), osl::effect::hasLongMove(), osl::move_generator::addeffect8::hasShortEffect(), osl::effect::hasShortMove(), hasUnblockableEffect(), osl::move_generator::addeffect8::hasUnblockableEffect(), osl::checkmate::ImmediateCheckmateTable::ImmediateCheckmateTable(), init(), osl::state::SimpleState::isAlmostValidMove(), osl::effect_util::UnblockableCheck::isMember(), osl::move_classifier::KingOpenMove< P >::isMemberMain(), osl::effect::Liberty8Table::Liberty8Table(), PtypeTable(), osl::effect::setBetweenMask(), osl::effect_util::SendOffPosition::Table::Table(), osl::search::StateElements::validCaptureMove(), と osl::search::StateElements::validSimpleMove().

const EffectContent osl::PtypeTable::getEffectNotLongU ( PtypeO  ptypeo,
Position  from,
Position  to 
) const [inline]

ptypeo が,自分から offset のところに効きを持つか? U除く

ptypeTable.h の 156 行で定義されています。

参照先 effectTableNotLongU, osl::Position::isOnBoard(), osl::isValidPtypeO(), と osl::PTYPEO_MIN.

int osl::PtypeTable::getIndex ( Ptype  ptype  )  const [inline]
int osl::PtypeTable::getIndexLimit ( Ptype  ptype  )  const [inline]
int osl::PtypeTable::getIndexMin ( Ptype  ptype  )  const [inline]
static int osl::PtypeTable::getKingIndex ( Player  p  )  [inline, static]

ptypeTable.h の 121 行で定義されています。

参照先 osl::BLACK, と osl::isValid().

mask_t osl::PtypeTable::getMaskLow ( Ptype  ptype  )  const [inline]
int osl::PtypeTable::getMoveMask ( Ptype  ptype  )  const [inline]
const char* osl::PtypeTable::getName ( Ptype  ptype  )  const [inline]

ptypeTable.h の 99 行で定義されています。

参照先 names.

参照元 osl::operator<<().

unsigned int osl::PtypeTable::getShortMoveMask ( Player  p,
PtypeO  ptypeo,
Direction  dir 
) const [inline]

ptypeTable.h の 44 行で定義されています。

参照先 osl::playerToIndex(), osl::PTYPEO_MIN, と shortMoveMask.

bool osl::PtypeTable::hasLongMove ( Ptype  ptype  )  const [inline]
bool osl::PtypeTable::hasUnblockableEffect ( PtypeO  attacker,
Position  from,
Position  to 
) const [inline]
void osl::PtypeTable::init (  )  [private]
template<osl::Ptype T>
void osl::PtypeTable::initPtype (  )  [inline, private]

ptypeTable.cc の 48 行で定義されています。

参照先 osl::isBasic().

template<osl::Ptype T>
void osl::PtypeTable::initPtypeSub ( Int2Type< true >  isBasic  )  [inline, private]
template<osl::Ptype T>
void osl::PtypeTable::initPtypeSub ( Int2Type< false >  isBasic  )  [inline, private]

ptypeTable.cc の 39 行で定義されています。

参照先 betterToPromote, csaNames, moveMasks, と names.

bool osl::PtypeTable::isBetterToPromote ( Ptype  ptype  )  const [inline]

変数

ptypeTable.h の 25 行で定義されています。

参照元 initPtypeSub(), と isBetterToPromote().

CArray2d<int, 2, PTYPE_SIZE> osl::PtypeTable::canDropLimit [private]

ptypeTable.h の 30 行で定義されています。

参照元 getCanDropLimit(), と initPtypeSub().

CArray<const char *, PTYPE_SIZE> osl::PtypeTable::csaNames [private]

ptypeTable.h の 24 行で定義されています。

参照元 getCsaName(), と initPtypeSub().

ptypeTable.h の 32 行で定義されています。

参照元 effect(), getEffect(), と init().

ptypeTable.h の 33 行で定義されています。

参照元 getEffectNotLongU(), と init().

CArray<int, PTYPE_SIZE> osl::PtypeTable::indexLimits [private]

ptypeTable.h の 28 行で定義されています。

参照元 getIndexLimit(), と initPtypeSub().

CArray<int, PTYPE_SIZE> osl::PtypeTable::indexMins [private]

ptypeTable.h の 27 行で定義されています。

参照元 getIndexMin(), と initPtypeSub().

CArray<int, PTYPE_SIZE> osl::PtypeTable::moveMasks [private]

ptypeTable.h の 26 行で定義されています。

参照元 getMoveMask(), init(), と initPtypeSub().

CArray<const char *, PTYPE_SIZE> osl::PtypeTable::names [private]

ptypeTable.h の 23 行で定義されています。

参照元 getName(), と initPtypeSub().

CArray<int, PTYPE_SIZE> osl::PtypeTable::numIndices [private]

ptypeTable.h の 22 行で定義されています。

参照元 getIndex(), init(), と initPtypeSub().

CArray<mask_t, PTYPE_SIZE> osl::PtypeTable::numMaskLows [private]

ptypeTable.h の 21 行で定義されています。

参照元 getMaskLow(), init(), と initPtypeSub().

CArray2d<unsigned int, 2, SHORT_DIRECTION_SIZE> osl::PtypeTable::shortMoveMask [private]

ptypeTable.h の 34 行で定義されています。

参照元 getShortMoveMask(), と init().


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