利きをつける手を生成するためのテーブル. [詳細]
#include <addEffectTable.h>
Public メソッド | |
AddEffectTable () | |
template<Player P> | |
NearMask | getNearMask (Ptype ptype, Position from, Position to) const |
template<Player P> | |
NearMask | getNearMaskWithPromote (Ptype ptype, Position from, Position to) const |
template<Player P> | |
NearMask | getNearMaskLong (Ptype ptype, Position from, Position to) const |
template<Player P> | |
Offset | getOffsetLong (Ptype ptype, Position from, Position to, int n) const |
template<Player P> | |
NearMask | getNearMaskPBISHOP (Position from, Position to) const |
template<Player P> | |
Offset | getOffsetPBISHOP (Position from, Position to, int n) const |
template<Player P> | |
NearMask | getNearMaskPROOK (Position from, Position to) const |
template<Player P> | |
Offset | getOffsetPROOK (Position from, Position to, int n) const |
Private メソッド | |
void | setNearMaskLong (Ptype ptype, int dx, int dy) |
Private 変数 | |
CArray2d< NearMask, PTYPE_SIZE, Offset32::SIZE > | nearMask |
CArray2d< NearMask, PTYPE_SIZE, Offset32::SIZE > | nearMaskWithPromote |
CArray2d< NearMask, PTYPE_SIZE, Offset32::SIZE > | nearMaskLong |
CArray3d< Offset, PTYPE_SIZE, Offset32::SIZE, 8 > | offsetLong |
実は 4 bit * 8 のテーブルにするのが自然だった | |
CArray< NearMask, Offset32::SIZE > | nearMaskPBISHOP |
CArray2d< Offset, Offset32::SIZE, 8 > | offsetPBISHOP |
CArray< NearMask, Offset32::SIZE > | nearMaskPROOK |
CArray2d< Offset, Offset32::SIZE, 8 > | offsetPROOK |
利きをつける手を生成するためのテーブル.
addEffectTable.h の 19 行で定義されています。
osl::move_generator::AddEffectTable::AddEffectTable | ( | ) |
NearMask osl::move_generator::AddEffectTable::getNearMask | ( | Ptype | ptype, | |
Position | from, | |||
Position | to | |||
) | const [inline] |
P(template) | - 手番のプレイヤー | |
ptype | - 動かそうとする駒の種類 | |
from | - 動かそうとする駒の位置 | |
to | - 利きをつけたいマス |
addEffectTable.h の 40 行で定義されています。
参照先 osl::Position::isOnBoard(), osl::isValid(), と nearMask.
参照元 osl::move_generator::without_effect::generateLongMoveDirectCanPromote(), osl::move_generator::without_effect::generateLongMoveDirectNoPromote(), と osl::move_generator::without_effect::generateMove().
NearMask osl::move_generator::AddEffectTable::getNearMaskLong | ( | Ptype | ptype, | |
Position | from, | |||
Position | to | |||
) | const [inline] |
addEffectTable.h の 52 行で定義されています。
参照先 osl::Position::isOnBoard(), osl::isValid(), と nearMaskLong.
参照元 osl::move_generator::without_effect::generateLongMove().
NearMask osl::move_generator::AddEffectTable::getNearMaskPBISHOP | ( | Position | from, | |
Position | to | |||
) | const [inline] |
addEffectTable.h の 66 行で定義されています。
参照先 osl::Position::isOnBoard(), と nearMaskPBISHOP.
参照元 osl::move_generator::without_effect::generateLongMove().
NearMask osl::move_generator::AddEffectTable::getNearMaskPROOK | ( | Position | from, | |
Position | to | |||
) | const [inline] |
addEffectTable.h の 79 行で定義されています。
参照先 osl::Position::isOnBoard(), と nearMaskPROOK.
参照元 osl::move_generator::without_effect::generateLongMove().
Offset osl::move_generator::AddEffectTable::getOffsetLong | ( | Ptype | ptype, | |
Position | from, | |||
Position | to, | |||
int | n | |||
) | const [inline] |
addEffectTable.h の 58 行で定義されています。
参照先 osl::Position::isOnBoard(), osl::isValid(), と offsetLong.
参照元 osl::move_generator::without_effect::generateLongMove().
Offset osl::move_generator::AddEffectTable::getOffsetPBISHOP | ( | Position | from, | |
Position | to, | |||
int | n | |||
) | const [inline] |
addEffectTable.h の 72 行で定義されています。
参照先 osl::Position::isOnBoard(), と offsetPBISHOP.
参照元 osl::move_generator::without_effect::generateLongMove().
Offset osl::move_generator::AddEffectTable::getOffsetPROOK | ( | Position | from, | |
Position | to, | |||
int | n | |||
) | const [inline] |
addEffectTable.h の 85 行で定義されています。
参照先 osl::Position::isOnBoard(), と offsetPROOK.
参照元 osl::move_generator::without_effect::generateLongMove().
void osl::move_generator::AddEffectTable::setNearMaskLong | ( | Ptype | ptype, | |
int | dx, | |||
int | dy | |||
) | [private] |
CArray2d<NearMask, PTYPE_SIZE, Offset32::SIZE> osl::move_generator::AddEffectTable::nearMask [private] |
addEffectTable.h の 21 行で定義されています。
参照元 getNearMask().
CArray2d<NearMask, PTYPE_SIZE, Offset32::SIZE> osl::move_generator::AddEffectTable::nearMaskLong [private] |
addEffectTable.h の 23 行で定義されています。
参照元 getNearMaskLong().
CArray<NearMask,Offset32::SIZE> osl::move_generator::AddEffectTable::nearMaskPBISHOP [private] |
addEffectTable.h の 26 行で定義されています。
参照元 getNearMaskPBISHOP().
CArray<NearMask,Offset32::SIZE> osl::move_generator::AddEffectTable::nearMaskPROOK [private] |
addEffectTable.h の 28 行で定義されています。
参照元 getNearMaskPROOK().
CArray2d<NearMask, PTYPE_SIZE, Offset32::SIZE> osl::move_generator::AddEffectTable::nearMaskWithPromote [private] |
addEffectTable.h の 22 行で定義されています。
CArray3d<Offset,PTYPE_SIZE,Offset32::SIZE,8> osl::move_generator::AddEffectTable::offsetLong [private] |
CArray2d<Offset,Offset32::SIZE,8> osl::move_generator::AddEffectTable::offsetPBISHOP [private] |
addEffectTable.h の 27 行で定義されています。
参照元 getOffsetPBISHOP().
CArray2d<Offset,Offset32::SIZE,8> osl::move_generator::AddEffectTable::offsetPROOK [private] |
addEffectTable.h の 29 行で定義されています。
参照元 getOffsetPROOK().