クラス 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 EffectContentgetEffect (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
EffectContenteffect (PtypeO ptypeo, Offset32 offset32)

Private 変数

CArray< mask_t, PTYPE_SIZEnumMaskLows
CArray< int, PTYPE_SIZEnumIndices
CArray< const char *, PTYPE_SIZEnames
CArray< const char *, PTYPE_SIZEcsaNames
CArray< bool, PTYPE_SIZEbetterToPromote
CArray< int, PTYPE_SIZEmoveMasks
CArray< int, PTYPE_SIZEindexMins
CArray< int, PTYPE_SIZEindexLimits
CArray2d< int, 2, PTYPE_SIZEcanDropLimit
CArray2d< EffectContent,
PTYPEO_SIZE, Offset32::SIZE
effectTable
CArray2d< EffectContent,
PTYPEO_SIZE, Offset32::SIZE
effectTableNotLongU
CArray2d< unsigned int,
2, SHORT_DIRECTION_SIZE > 
shortMoveMask

説明

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


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

osl::PtypeTable::PtypeTable (  ) 

関数

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

ptypeTable.h91 行で定義されています。

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

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

ptypeTable.h86 行で定義されています。

参照先 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.h75 行で定義されています。

参照先 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.h135 行で定義されています。

参照先 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.h156 行で定義されています。

参照先 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.h121 行で定義されています。

参照先 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.h99 行で定義されています。

参照先 names.

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

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

ptypeTable.h44 行で定義されています。

参照先 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.cc48 行で定義されています。

参照先 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.cc39 行で定義されています。

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

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

変数

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

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

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

ptypeTable.h30 行で定義されています。

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

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

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

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

ptypeTable.h32 行で定義されています。

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

ptypeTable.h33 行で定義されています。

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

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

ptypeTable.h28 行で定義されています。

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

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

ptypeTable.h27 行で定義されています。

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

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

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

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

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

ptypeTable.h23 行で定義されています。

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

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

ptypeTable.h22 行で定義されています。

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

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

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

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

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

ptypeTable.h34 行で定義されています。

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


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