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

#include <addEffect8Table.h>

Collaboration diagram for osl::move_generator::addeffect8::AddEffect8Table:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 AddEffect8Table ()
Square getDropSquare (Ptype ptype, Square kingSquare, int i) const
 ptypeの駒を打って敵の玉の8近傍に短い利きがつく地点の相対位置.
Offset getLongDropDirect (Ptype ptype, Square kingSquare, int i) const
 ptypeの駒を打って敵の玉の8近傍に長い利きをつける.
PO getLongDropSquare (Ptype ptype, Square kingSquare, int i) const
 ptypeの駒を打って敵の玉の8近傍に長い利きをつける.
POO getLongDrop2Square (Ptype ptype, Square kingSquare, int i) const
 ptypeの駒を打って敵の玉の8近傍に長い利きをつける.
Offset getShortMoveOffset (bool isPromote, Ptype ptype, Offset32 o32, int i) const
 ptypeの駒を動かして(長い動きも可 )敵の玉の8近傍に短い利きがつく地点の相対位置.
OffsetPair getLongMoveOffset (Ptype ptype, Offset32 o32, int i) const
 ptypeの駒を動かして敵の玉の8近傍に長い利きがつく地点の相対位置.
OffsetPair getBetweenOffset (Ptype ptype, Offset32 o32) const
 ptypeの駒が敵の駒がなければ8近傍に長い利きがある場合.

Private Member Functions

void initDropSquare ()
void initLongDropSquare ()
void initMoveOffset ()

Private Attributes

CArray3d< Square, PTYPE_SIZE,
Square::SIZE, maxDropSquare
dropSquare
CArray3d< Offset, PTYPE_SIZE,
Square::SIZE,
maxLongDropDirect
longDropDirect
CArray3d< PO, PTYPE_SIZE,
Square::SIZE,
maxLongDropSquare
longDropSquare
CArray3d< POO, PTYPE_SIZE,
Square::SIZE,
maxLongDrop2Square
longDrop2Square
CArray3d< Offset, PTYPE_SIZE,
Offset32::SIZE,
maxShortMoveOffset
shortMoveOffset
CArray3d< Offset, PTYPE_SIZE,
Offset32::SIZE,
maxShortPromoteMoveOffset
shortPromoteMoveOffset
CArray3d< OffsetPair,
PTYPE_SIZE, Offset32::SIZE,
maxLongMoveOffset
longMoveOffset
CArray2d< OffsetPair,
PTYPE_SIZE, Offset32::SIZE
betweenOffset

Static Private Attributes

static const int maxDropSquare = 32
static const int maxLongDropDirect = 8
static const int maxLongDropSquare = 32
static const int maxLongDrop2Square = 8
static const int maxShortMoveOffset = 32
static const int maxShortPromoteMoveOffset = 32
static const int maxLongMoveOffset = 32

Detailed Description

Definition at line 25 of file addEffect8Table.h.


Constructor & Destructor Documentation

Definition at line 233 of file addEffect8Table.cc.


Member Function Documentation

ptypeの駒が敵の駒がなければ8近傍に長い利きがある場合.

黒からsecondの方向にたどってkingSquare+firstまでに邪魔が1つなら良い

Parameters:
ptype- 移動前の駒の種類
o32- targetからみたfromの相対位置 = Offset32(from,target)

Definition at line 129 of file addEffect8Table.h.

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

Referenced by osl::move_generator::addeffect8::generateLongMove().

Square osl::move_generator::addeffect8::AddEffect8Table::getDropSquare ( Ptype  ptype,
Square  kingSquare,
int  i 
) const [inline]

ptypeの駒を打って敵の玉の8近傍に短い利きがつく地点の相対位置.

長い利きを8近傍内につけるのも可 黒から見てkingSquare+offsetに駒を打つと良い 手番から見た相手の玉のSquare

Definition at line 53 of file addEffect8Table.h.

References dropSquare, and osl::Square::index().

Referenced by osl::move_generator::addeffect8::generateShortDrop().

POO osl::move_generator::addeffect8::AddEffect8Table::getLongDrop2Square ( Ptype  ptype,
Square  kingSquare,
int  i 
) const [inline]

ptypeの駒を打って敵の玉の8近傍に長い利きをつける.

1方向 黒から見てkingSquare+firstに打つ手から始めて,+secondしていっても emptyならOK

Definition at line 85 of file addEffect8Table.h.

References osl::Square::index(), and longDrop2Square.

Referenced by osl::move_generator::addeffect8::generateLongDrop().

Offset osl::move_generator::addeffect8::AddEffect8Table::getLongDropDirect ( Ptype  ptype,
Square  kingSquare,
int  i 
) const [inline]

ptypeの駒を打って敵の玉の8近傍に長い利きをつける.

間に駒がなければ,王手になるタイプ

Definition at line 63 of file addEffect8Table.h.

References osl::Square::index(), and longDropDirect.

Referenced by osl::move_generator::addeffect8::generateLongDrop().

PO osl::move_generator::addeffect8::AddEffect8Table::getLongDropSquare ( Ptype  ptype,
Square  kingSquare,
int  i 
) const [inline]

ptypeの駒を打って敵の玉の8近傍に長い利きをつける.

1方向 黒から見てkingSquare+firstに打つ手から始めて,+secondしていっても emptyならOK

Definition at line 74 of file addEffect8Table.h.

References osl::Square::index(), and longDropSquare.

Referenced by osl::move_generator::addeffect8::generateLongDrop().

ptypeの駒を動かして敵の玉の8近傍に長い利きがつく地点の相対位置.

黒から見てkingSquare+firstに駒を移動できて, kingSquare+secondとの間がずっとemptyなら良い

Parameters:
ptype- 移動前の駒の種類
o32- targetからみたfromの相対位置 = Offset32(from,target)
i- 何番目か

Definition at line 118 of file addEffect8Table.h.

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

Referenced by osl::move_generator::addeffect8::generateLongMove().

Offset osl::move_generator::addeffect8::AddEffect8Table::getShortMoveOffset ( bool  isPromote,
Ptype  ptype,
Offset32  o32,
int  i 
) const [inline]

ptypeの駒を動かして(長い動きも可 )敵の玉の8近傍に短い利きがつく地点の相対位置.

黒から見てkingSquare+offsetに駒を移動すると良い

Parameters:
isPromote- promoteするかしないか
ptype- 移動前の駒の種類
o32- targetからみたfromの相対位置 = Offset32(from,target)
i- 何番目か

Definition at line 99 of file addEffect8Table.h.

References osl::Offset32Base< Width, Width2 >::index(), maxShortMoveOffset, maxShortPromoteMoveOffset, shortMoveOffset, and shortPromoteMoveOffset.

Referenced by osl::move_generator::addeffect8::generateLongMove(), and osl::move_generator::addeffect8::generateShortMove().


Member Data Documentation

Definition at line 43 of file addEffect8Table.h.

Referenced by getBetweenOffset().

Definition at line 28 of file addEffect8Table.h.

Referenced by getDropSquare(), and initDropSquare().

Definition at line 35 of file addEffect8Table.h.

Referenced by getLongDrop2Square().

Definition at line 30 of file addEffect8Table.h.

Referenced by getLongDropDirect().

Definition at line 33 of file addEffect8Table.h.

Referenced by getLongDropSquare().

Definition at line 42 of file addEffect8Table.h.

Referenced by getLongMoveOffset().

Definition at line 27 of file addEffect8Table.h.

Definition at line 34 of file addEffect8Table.h.

Definition at line 29 of file addEffect8Table.h.

Definition at line 32 of file addEffect8Table.h.

Definition at line 41 of file addEffect8Table.h.

Referenced by getLongMoveOffset().

Definition at line 37 of file addEffect8Table.h.

Referenced by getShortMoveOffset().

Definition at line 39 of file addEffect8Table.h.

Referenced by getShortMoveOffset().

Definition at line 38 of file addEffect8Table.h.

Referenced by getShortMoveOffset().

Definition at line 40 of file addEffect8Table.h.

Referenced by getShortMoveOffset().


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