#include <addEffect8Table.h>
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 |
Definition at line 25 of file addEffect8Table.h.
Definition at line 233 of file addEffect8Table.cc.
OffsetPair osl::move_generator::addeffect8::AddEffect8Table::getBetweenOffset | ( | Ptype | ptype, |
Offset32 | o32 | ||
) | const [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().
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().
OffsetPair osl::move_generator::addeffect8::AddEffect8Table::getLongMoveOffset | ( | Ptype | ptype, |
Offset32 | o32, | ||
int | i | ||
) | const [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().
Offset osl::move_generator::addeffect8::AddEffect8Table::getShortMoveOffset | ( | bool | isPromote, |
Ptype | ptype, | ||
Offset32 | o32, | ||
int | i | ||
) | const [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().
void osl::move_generator::addeffect8::AddEffect8Table::initDropSquare | ( | ) | [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.
void osl::move_generator::addeffect8::AddEffect8Table::initLongDropSquare | ( | ) | [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.
void osl::move_generator::addeffect8::AddEffect8Table::initMoveOffset | ( | ) | [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().
CArray2d<OffsetPair,PTYPE_SIZE,Offset32::SIZE> osl::move_generator::addeffect8::AddEffect8Table::betweenOffset [private] |
Definition at line 43 of file addEffect8Table.h.
Referenced by getBetweenOffset().
CArray3d<Square,PTYPE_SIZE,Square::SIZE,maxDropSquare> osl::move_generator::addeffect8::AddEffect8Table::dropSquare [private] |
Definition at line 28 of file addEffect8Table.h.
Referenced by getDropSquare(), and initDropSquare().
CArray3d<POO,PTYPE_SIZE,Square::SIZE,maxLongDrop2Square> osl::move_generator::addeffect8::AddEffect8Table::longDrop2Square [private] |
Definition at line 35 of file addEffect8Table.h.
Referenced by getLongDrop2Square().
CArray3d<Offset,PTYPE_SIZE,Square::SIZE,maxLongDropDirect> osl::move_generator::addeffect8::AddEffect8Table::longDropDirect [private] |
Definition at line 30 of file addEffect8Table.h.
Referenced by getLongDropDirect().
CArray3d<PO,PTYPE_SIZE,Square::SIZE,maxLongDropSquare> osl::move_generator::addeffect8::AddEffect8Table::longDropSquare [private] |
Definition at line 33 of file addEffect8Table.h.
Referenced by getLongDropSquare().
CArray3d<OffsetPair,PTYPE_SIZE,Offset32::SIZE,maxLongMoveOffset> osl::move_generator::addeffect8::AddEffect8Table::longMoveOffset [private] |
Definition at line 42 of file addEffect8Table.h.
Referenced by getLongMoveOffset().
const int osl::move_generator::addeffect8::AddEffect8Table::maxDropSquare = 32 [static, private] |
Definition at line 27 of file addEffect8Table.h.
const int osl::move_generator::addeffect8::AddEffect8Table::maxLongDrop2Square = 8 [static, private] |
Definition at line 34 of file addEffect8Table.h.
const int osl::move_generator::addeffect8::AddEffect8Table::maxLongDropDirect = 8 [static, private] |
Definition at line 29 of file addEffect8Table.h.
const int osl::move_generator::addeffect8::AddEffect8Table::maxLongDropSquare = 32 [static, private] |
Definition at line 32 of file addEffect8Table.h.
const int osl::move_generator::addeffect8::AddEffect8Table::maxLongMoveOffset = 32 [static, private] |
Definition at line 41 of file addEffect8Table.h.
Referenced by getLongMoveOffset().
const int osl::move_generator::addeffect8::AddEffect8Table::maxShortMoveOffset = 32 [static, private] |
Definition at line 37 of file addEffect8Table.h.
Referenced by getShortMoveOffset().
const int osl::move_generator::addeffect8::AddEffect8Table::maxShortPromoteMoveOffset = 32 [static, private] |
Definition at line 39 of file addEffect8Table.h.
Referenced by getShortMoveOffset().
CArray3d<Offset,PTYPE_SIZE,Offset32::SIZE,maxShortMoveOffset> osl::move_generator::addeffect8::AddEffect8Table::shortMoveOffset [private] |
Definition at line 38 of file addEffect8Table.h.
Referenced by getShortMoveOffset().
CArray3d<Offset,PTYPE_SIZE,Offset32::SIZE,maxShortPromoteMoveOffset> osl::move_generator::addeffect8::AddEffect8Table::shortPromoteMoveOffset [private] |
Definition at line 40 of file addEffect8Table.h.
Referenced by getShortMoveOffset().