#include <addEffect8Table.h>
Public メソッド | |
AddEffect8Table () | |
Position | getDropPosition (Ptype ptype, Position kingPosition, int i) const |
ptypeの駒を打って敵の玉の8近傍に短い利きがつく地点の相対位置. | |
Offset | getLongDropDirect (Ptype ptype, Position kingPosition, int i) const |
ptypeの駒を打って敵の玉の8近傍に長い利きをつける. | |
PO | getLongDropPosition (Ptype ptype, Position kingPosition, int i) const |
ptypeの駒を打って敵の玉の8近傍に長い利きをつける. | |
POO | getLongDrop2Position (Ptype ptype, Position kingPosition, 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 メソッド | |
void | initDropPosition () |
void | initLongDropPosition () |
void | initMoveOffset () |
Private 変数 | |
CArray3d< Position, PTYPE_SIZE, Position::SIZE, maxDropPosition > | dropPosition |
CArray3d< Offset, PTYPE_SIZE, Position::SIZE, maxLongDropDirect > | longDropDirect |
CArray3d< PO, PTYPE_SIZE, Position::SIZE, maxLongDropPosition > | longDropPosition |
CArray3d< POO, PTYPE_SIZE, Position::SIZE, maxLongDrop2Position > | longDrop2Position |
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 変数 | |
static const int | maxDropPosition = 32 |
static const int | maxLongDropDirect = 8 |
static const int | maxLongDropPosition = 32 |
static const int | maxLongDrop2Position = 8 |
static const int | maxShortMoveOffset = 32 |
static const int | maxShortPromoteMoveOffset = 32 |
static const int | maxLongMoveOffset = 32 |
addEffect8Table.h の 25 行で定義されています。
osl::move_generator::addeffect8::AddEffect8Table::AddEffect8Table | ( | ) |
addEffect8Table.cc の 217 行で定義されています。
参照先 initDropPosition(), initLongDropPosition(), と initMoveOffset().
OffsetPair osl::move_generator::addeffect8::AddEffect8Table::getBetweenOffset | ( | Ptype | ptype, | |
Offset32 | o32 | |||
) | const [inline] |
ptypeの駒が敵の駒がなければ8近傍に長い利きがある場合.
黒からsecondの方向にたどってkingPosition+firstまでに邪魔が1つなら良い
ptype | - 移動前の駒の種類 | |
o32 | - targetからみたfromの相対位置 = Offset32(from,target) |
addEffect8Table.h の 129 行で定義されています。
参照先 betweenOffset, と osl::Offset32Base< Width, Width2 >::index().
Position osl::move_generator::addeffect8::AddEffect8Table::getDropPosition | ( | Ptype | ptype, | |
Position | kingPosition, | |||
int | i | |||
) | const [inline] |
ptypeの駒を打って敵の玉の8近傍に短い利きがつく地点の相対位置.
長い利きを8近傍内につけるのも可 黒から見てkingPosition+offsetに駒を打つと良い 手番から見た相手の玉のPosition
addEffect8Table.h の 53 行で定義されています。
参照先 dropPosition, と osl::Position::index().
POO osl::move_generator::addeffect8::AddEffect8Table::getLongDrop2Position | ( | Ptype | ptype, | |
Position | kingPosition, | |||
int | i | |||
) | const [inline] |
ptypeの駒を打って敵の玉の8近傍に長い利きをつける.
1方向 黒から見てkingPosition+firstに打つ手から始めて,+secondしていっても emptyならOK
addEffect8Table.h の 85 行で定義されています。
Offset osl::move_generator::addeffect8::AddEffect8Table::getLongDropDirect | ( | Ptype | ptype, | |
Position | kingPosition, | |||
int | i | |||
) | const [inline] |
ptypeの駒を打って敵の玉の8近傍に長い利きをつける.
間に駒がなければ,王手になるタイプ
addEffect8Table.h の 63 行で定義されています。
参照先 osl::Position::index(), と longDropDirect.
PO osl::move_generator::addeffect8::AddEffect8Table::getLongDropPosition | ( | Ptype | ptype, | |
Position | kingPosition, | |||
int | i | |||
) | const [inline] |
ptypeの駒を打って敵の玉の8近傍に長い利きをつける.
1方向 黒から見てkingPosition+firstに打つ手から始めて,+secondしていっても emptyならOK
addEffect8Table.h の 74 行で定義されています。
OffsetPair osl::move_generator::addeffect8::AddEffect8Table::getLongMoveOffset | ( | Ptype | ptype, | |
Offset32 | o32, | |||
int | i | |||
) | const [inline] |
ptypeの駒を動かして敵の玉の8近傍に長い利きがつく地点の相対位置.
黒から見てkingPosition+firstに駒を移動できて, kingPosition+secondとの間がずっとemptyなら良い
ptype | - 移動前の駒の種類 | |
o32 | - targetからみたfromの相対位置 = Offset32(from,target) | |
i | - 何番目か |
addEffect8Table.h の 118 行で定義されています。
参照先 osl::Offset32Base< Width, Width2 >::index(), longMoveOffset, と maxLongMoveOffset.
Offset osl::move_generator::addeffect8::AddEffect8Table::getShortMoveOffset | ( | bool | isPromote, | |
Ptype | ptype, | |||
Offset32 | o32, | |||
int | i | |||
) | const [inline] |
ptypeの駒を動かして(長い動きも可 )敵の玉の8近傍に短い利きがつく地点の相対位置.
黒から見てkingPosition+offsetに駒を移動すると良い
isPromote | - promoteするかしないか | |
ptype | - 移動前の駒の種類 | |
o32 | - targetからみたfromの相対位置 = Offset32(from,target) | |
i | - 何番目か |
addEffect8Table.h の 99 行で定義されています。
参照先 osl::Offset32Base< Width, Width2 >::index(), maxShortMoveOffset, maxShortPromoteMoveOffset, shortMoveOffset, と shortPromoteMoveOffset.
参照元 osl::move_generator::addeffect8::generateLongMove(), と osl::move_generator::addeffect8::generateShortMove().
void osl::move_generator::addeffect8::AddEffect8Table::initDropPosition | ( | ) | [private] |
void osl::move_generator::addeffect8::AddEffect8Table::initLongDropPosition | ( | ) | [private] |
addEffect8Table.cc の 73 行で定義されています。
参照先 osl::BISHOP, dropPosition, osl::move_generator::addeffect8::hasEffect(), osl::PtypeTable::hasLongMove(), osl::move_generator::addeffect8::hasUnblockableEffect(), osl::Position::index(), osl::Position::isOnBoard(), osl::LANCE, longDrop2Position, longDropDirect, longDropPosition, osl::PTYPE_BASIC_MIN, osl::PTYPE_MAX, osl::Ptype_Table, と osl::ROOK.
参照元 AddEffect8Table().
void osl::move_generator::addeffect8::AddEffect8Table::initMoveOffset | ( | ) | [private] |
addEffect8Table.cc の 127 行で定義されています。
参照先 betweenOffset, osl::canPromote(), osl::move_generator::addeffect8::hasEffect(), osl::move_generator::addeffect8::hasUnblockableEffect(), osl::Offset32Base< Width, Width2 >::index(), longMoveOffset, osl::eval::max(), osl::promote(), osl::PTYPE_MAX, osl::PTYPE_PIECE_MIN, osl::move_generator::addeffect8::sameDirection(), shortMoveOffset, と shortPromoteMoveOffset.
参照元 AddEffect8Table().
CArray2d<OffsetPair,PTYPE_SIZE,Offset32::SIZE> osl::move_generator::addeffect8::AddEffect8Table::betweenOffset [private] |
addEffect8Table.h の 43 行で定義されています。
参照元 getBetweenOffset(), と initMoveOffset().
CArray3d<Position,PTYPE_SIZE,Position::SIZE,maxDropPosition> osl::move_generator::addeffect8::AddEffect8Table::dropPosition [private] |
addEffect8Table.h の 28 行で定義されています。
参照元 getDropPosition(), initDropPosition(), と initLongDropPosition().
CArray3d<POO,PTYPE_SIZE,Position::SIZE,maxLongDrop2Position> osl::move_generator::addeffect8::AddEffect8Table::longDrop2Position [private] |
addEffect8Table.h の 35 行で定義されています。
CArray3d<Offset,PTYPE_SIZE,Position::SIZE,maxLongDropDirect> osl::move_generator::addeffect8::AddEffect8Table::longDropDirect [private] |
addEffect8Table.h の 30 行で定義されています。
CArray3d<PO,PTYPE_SIZE,Position::SIZE,maxLongDropPosition> osl::move_generator::addeffect8::AddEffect8Table::longDropPosition [private] |
addEffect8Table.h の 33 行で定義されています。
CArray3d<OffsetPair,PTYPE_SIZE,Offset32::SIZE,maxLongMoveOffset> osl::move_generator::addeffect8::AddEffect8Table::longMoveOffset [private] |
addEffect8Table.h の 42 行で定義されています。
参照元 getLongMoveOffset(), と initMoveOffset().
const int osl::move_generator::addeffect8::AddEffect8Table::maxDropPosition = 32 [static, private] |
addEffect8Table.h の 27 行で定義されています。
const int osl::move_generator::addeffect8::AddEffect8Table::maxLongDrop2Position = 8 [static, private] |
addEffect8Table.h の 34 行で定義されています。
const int osl::move_generator::addeffect8::AddEffect8Table::maxLongDropDirect = 8 [static, private] |
addEffect8Table.h の 29 行で定義されています。
const int osl::move_generator::addeffect8::AddEffect8Table::maxLongDropPosition = 32 [static, private] |
addEffect8Table.h の 32 行で定義されています。
const int osl::move_generator::addeffect8::AddEffect8Table::maxLongMoveOffset = 32 [static, private] |
addEffect8Table.h の 41 行で定義されています。
参照元 getLongMoveOffset().
const int osl::move_generator::addeffect8::AddEffect8Table::maxShortMoveOffset = 32 [static, private] |
addEffect8Table.h の 37 行で定義されています。
参照元 getShortMoveOffset().
const int osl::move_generator::addeffect8::AddEffect8Table::maxShortPromoteMoveOffset = 32 [static, private] |
addEffect8Table.h の 39 行で定義されています。
参照元 getShortMoveOffset().
CArray3d<Offset,PTYPE_SIZE,Offset32::SIZE,maxShortMoveOffset> osl::move_generator::addeffect8::AddEffect8Table::shortMoveOffset [private] |
addEffect8Table.h の 38 行で定義されています。
参照元 getShortMoveOffset(), と initMoveOffset().
CArray3d<Offset,PTYPE_SIZE,Offset32::SIZE,maxShortPromoteMoveOffset> osl::move_generator::addeffect8::AddEffect8Table::shortPromoteMoveOffset [private] |
addEffect8Table.h の 40 行で定義されています。
参照元 getShortMoveOffset(), と initMoveOffset().