ネームスペース osl::move_classifier

Moveを分類するクラス群. [詳細]

構成

struct  AttackDefenceAroundKing
 玉の周辺 5x5 の領域に利きをつける手

  • P は move の player と一般には一致しないので注意
  • TODO 5x5 の領域での駒の移動も含めた方が良いか? -- Open Moves? -- 駒取り -- (予め)合い駒の位置に置いておく
[詳細]
struct  BlockLongEffect
 長い利きをブロックする手の判定. [詳細]
struct  BlockLongAny
struct  Check
struct  ClassifierTraits
struct  DirectCheck
struct  KingOpenMove
 Pの王をopen checkにする手でないことをチェック. [詳細]
struct  ClassifierTraits< KingOpenMove< P > >
struct  MoveAdaptor
struct  PlayerMoveAdaptor
struct  ConditionAdaptor
 drop の時は呼べないなどの条件を代わりにテスト [詳細]
struct  OpenCheck
struct  ClassifierTraits< OpenCheck< P > >
struct  PawnDropCheckmate
 打歩詰の判定. [詳細]
struct  SafeMove
 元々,手番の玉に王手がかかっていない状態で自殺手でないことをチェック. [詳細]
struct  ClassifierTraits< SafeMove< P > >
struct  TrapRook

関数

bool canAttackInThreeMoves (Player player, Ptype ptype, Position myPos, Position opKingPos)
static bool isSafeMove (NumEffectState &state, Move move)

説明

Moveを分類するクラス群.

標準インターフェース:

 template <Player P>
 struct XXX
 {
   template <class State>
   static bool isMember(const State& state, 
                        Ptype ptype,Position from,Position to)
 };

アダプタ: 標準インターフェースは使いにくいので,以下が用意されている.

 if (! move_classifier::PlayerMoveAdaptor<move_classifier::PawnDropCheckmate>::isMember(state, move)) {
   // もしも打歩詰じゃなかったら...
 }

関数

bool osl::move_classifier::canAttackInThreeMoves ( Player  player,
Ptype  ptype,
Position  myPos,
Position  opKingPos 
)
static bool osl::move_classifier::isSafeMove ( NumEffectState &  state,
Move  move 
) [inline, static]
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義
Sun May 16 09:58:24 2010に生成されました。  doxygen 1.6.3