#include <addEffect8Table.h>
Public Member Functions | |
AddEffect8Table () | |
Square | getDropSquare (Ptype ptype, Square kingSquare, int i) const |
ptypeの駒を打って敵の玉の8近傍に短い利きがつく地点の相対位置. More... | |
Offset | getLongDropDirect (Ptype ptype, Square kingSquare, int i) const |
ptypeの駒を打って敵の玉の8近傍に長い利きをつける. More... | |
PO | getLongDropSquare (Ptype ptype, Square kingSquare, int i) const |
ptypeの駒を打って敵の玉の8近傍に長い利きをつける. More... | |
POO | getLongDrop2Square (Ptype ptype, Square kingSquare, int i) const |
ptypeの駒を打って敵の玉の8近傍に長い利きをつける. More... | |
Offset | getShortMoveOffset (bool isPromote, Ptype ptype, Offset32 o32, int i) const |
ptypeの駒を動かして(長い動きも可 )敵の玉の8近傍に短い利きがつく地点の相対位置. More... | |
OffsetPair | getLongMoveOffset (Ptype ptype, Offset32 o32, int i) const |
ptypeの駒を動かして敵の玉の8近傍に長い利きがつく地点の相対位置. More... | |
OffsetPair | getBetweenOffset (Ptype ptype, Offset32 o32) const |
ptypeの駒が敵の駒がなければ8近傍に長い利きがある場合. More... | |
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 |
Definition at line 25 of file addEffect8Table.h.
osl::move_generator::addeffect8::AddEffect8Table::AddEffect8Table | ( | ) |
Definition at line 233 of file addEffect8Table.cc.
|
inline |
ptypeの駒が敵の駒がなければ8近傍に長い利きがある場合.
黒からsecondの方向にたどってkingSquare+firstまでに邪魔が1つなら良い
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().
|
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().
|
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().
|
inline |
ptypeの駒を打って敵の玉の8近傍に長い利きをつける.
間に駒がなければ,王手になるタイプ
Definition at line 63 of file addEffect8Table.h.
References osl::Square::index(), and longDropDirect.
Referenced by osl::move_generator::addeffect8::generateLongDrop().
|
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().
|
inline |
ptypeの駒を動かして敵の玉の8近傍に長い利きがつく地点の相対位置.
黒から見てkingSquare+firstに駒を移動できて, kingSquare+secondとの間がずっとemptyなら良い
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().
|
inline |
ptypeの駒を動かして(長い動きも可 )敵の玉の8近傍に短い利きがつく地点の相対位置.
黒から見てkingSquare+offsetに駒を移動すると良い
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().
|
private |
Definition at line 56 of file addEffect8Table.cc.
References dropSquare, osl::PtypeTable::hasLongMove(), osl::move_generator::addeffect8::hasUnblockableEffect(), osl::Square::index(), osl::Square::isOnBoard(), osl::KING, osl::PTYPE_BASIC_MIN, osl::PTYPE_MAX, and osl::Ptype_Table.
|
private |
Definition at line 89 of file addEffect8Table.cc.
References osl::BISHOP, count, osl::move_generator::addeffect8::hasEffect(), osl::PtypeTable::hasLongMove(), osl::move_generator::addeffect8::hasUnblockableEffect(), osl::Square::index(), osl::Square::isOnBoard(), osl::LANCE, osl::PTYPE_BASIC_MIN, osl::PTYPE_MAX, osl::Ptype_Table, and osl::ROOK.
|
private |
Definition at line 143 of file addEffect8Table.cc.
References osl::canPromote(), osl::move_generator::addeffect8::hasEffect(), osl::move_generator::addeffect8::hasUnblockableEffect(), osl::Offset32Base< Width, Width2 >::index(), osl::eval::max(), osl::promote(), osl::PTYPE_MAX, osl::PTYPE_PIECE_MIN, and osl::move_generator::addeffect8::sameDirection().
|
private |
Definition at line 43 of file addEffect8Table.h.
Referenced by getBetweenOffset().
|
private |
Definition at line 28 of file addEffect8Table.h.
Referenced by getDropSquare(), and initDropSquare().
|
private |
Definition at line 35 of file addEffect8Table.h.
Referenced by getLongDrop2Square().
|
private |
Definition at line 30 of file addEffect8Table.h.
Referenced by getLongDropDirect().
|
private |
Definition at line 33 of file addEffect8Table.h.
Referenced by getLongDropSquare().
|
private |
Definition at line 42 of file addEffect8Table.h.
Referenced by getLongMoveOffset().
|
staticprivate |
Definition at line 27 of file addEffect8Table.h.
|
staticprivate |
Definition at line 34 of file addEffect8Table.h.
|
staticprivate |
Definition at line 29 of file addEffect8Table.h.
|
staticprivate |
Definition at line 32 of file addEffect8Table.h.
|
staticprivate |
Definition at line 41 of file addEffect8Table.h.
Referenced by getLongMoveOffset().
|
staticprivate |
Definition at line 37 of file addEffect8Table.h.
Referenced by getShortMoveOffset().
|
staticprivate |
Definition at line 39 of file addEffect8Table.h.
Referenced by getShortMoveOffset().
|
private |
Definition at line 38 of file addEffect8Table.h.
Referenced by getShortMoveOffset().
|
private |
Definition at line 40 of file addEffect8Table.h.
Referenced by getShortMoveOffset().