クラス osl::effect::Liberty8Table

Liberty8を得るために使うテーブル. [詳細]

#include <liberty8Table.h>

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

すべてのメンバ一覧

Public メソッド

 Liberty8Table ()
template<Player P>
NearMask getShortMask (Ptype ptype, Position from, Position to) const
 P側のptypeのfromにある駒がtoにある Pの反対側の駒の周囲 にどういう短い利き(長い利きの隣で利きを伸ばすと8近傍内に 伸ばせる場合を除く)を持つかを返す directでなくても,targetの駒を挟んだ反対側ならOKとする 利きがあるところは0でそうでないところは1とする.
template<Player P>
LongEffect8 getLongEffect (Ptype ptype, Position from, Position to) const
 P側のptypeのfromにある駒がtoにある Pの反対側の駒の周囲 にどういう長い利き(長い利きの隣で利きを伸ばすと8近傍内に 伸ばせる場合を含む)を持つかを返す.
template<Player P>
LongEffect8 getLongEffect2 (Position from, Position to) const
 飛車, 龍が王の斜めの位置にいて, 両方向に長い利きを持つ場合の テーブル

Private メソッド

LongEffect8 longEffectOf (Ptype ptype, int dx, int dy)
 黒の攻め方の駒ptype から dx, dyの位置にいる白玉の 近隣 Dir(白玉に白の目から見てDirの動き到達可能なマス) に 利きを持つ場合は dirToMask(Dir)が0, そうでない場合は1

Private 変数

CArray< CArray< unsigned char,
Offset32::SIZE >, PTYPE_SIZE
shortMask
CArray2d< LongEffect8,
PTYPE_SIZE, Offset32::SIZE
longEffect
CArray< LongEffect8,
Offset32::SIZE
longEffect2

説明

Liberty8を得るために使うテーブル.

短い利きに関しては,ptypeと座標の差でテーブルを引けば得られる. 長い利きはgetLongEffectで得るが, 飛車に関してはそれに加えてgetLongEffect2も使う.

liberty8Table.h51 行で定義されています。


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

osl::effect::Liberty8Table::Liberty8Table (  ) 

関数

template<Player P>
LongEffect8 osl::effect::Liberty8Table::getLongEffect ( Ptype  ptype,
Position  from,
Position  to 
) const [inline]

P側のptypeのfromにある駒がtoにある Pの反対側の駒の周囲 にどういう長い利き(長い利きの隣で利きを伸ばすと8近傍内に 伸ばせる場合を含む)を持つかを返す.

liberty8Table.h77 行で定義されています。

参照先 osl::PtypeTable::hasLongMove(), osl::Position::isOnBoard(), osl::isValid(), longEffect, と osl::Ptype_Table.

template<Player P>
LongEffect8 osl::effect::Liberty8Table::getLongEffect2 ( Position  from,
Position  to 
) const [inline]

飛車, 龍が王の斜めの位置にいて, 両方向に長い利きを持つ場合の テーブル

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

参照先 osl::Position::isOnBoard(), と longEffect2.

template<Player P>
NearMask osl::effect::Liberty8Table::getShortMask ( Ptype  ptype,
Position  from,
Position  to 
) const [inline]

P側のptypeのfromにある駒がtoにある Pの反対側の駒の周囲 にどういう短い利き(長い利きの隣で利きを伸ばすと8近傍内に 伸ばせる場合を除く)を持つかを返す directでなくても,targetの駒を挟んだ反対側ならOKとする 利きがあるところは0でそうでないところは1とする.

liberty8Table.h66 行で定義されています。

参照先 osl::Position::isOnBoard(), osl::isValid(), と shortMask.

LongEffect8 osl::effect::Liberty8Table::longEffectOf ( Ptype  ptype,
int  dx,
int  dy 
) [private]

黒の攻め方の駒ptype から dx, dyの位置にいる白玉の 近隣 Dir(白玉に白の目から見てDirの動き到達可能なマス) に 利きを持つ場合は dirToMask(Dir)が0, そうでない場合は1

自分が動いて元のマスに利きをつける手は生成しない

liberty8Table.cc91 行で定義されています。

参照先 osl::Board_Table, osl::effect::directionOf(), osl::BoardTable::getDxForBlack(), osl::BoardTable::getDyForBlack(), osl::effect::hasLongMove(), osl::PtypeTable::hasLongMove(), osl::Offset32Base< Width, Width2 >::index(), longEffect2, osl::PROOK, osl::Ptype_Table, osl::ROOK, osl::effect::LongEffect8::setMask(), osl::effect::LongEffect8::setOffset(), と osl::Offset::ZERO().

参照元 Liberty8Table().


変数

liberty8Table.h53 行で定義されています。

参照元 getLongEffect(), と Liberty8Table().

liberty8Table.h54 行で定義されています。

参照元 getLongEffect2(), と longEffectOf().

CArray<CArray<unsigned char,Offset32::SIZE>,PTYPE_SIZE> osl::effect::Liberty8Table::shortMask [private]

liberty8Table.h52 行で定義されています。

参照元 getShortMask(), と Liberty8Table().


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