クラス テンプレート osl::move_generator::AddEffect8< P >

敵の8近傍に利きを付ける. 王手の手は重複を避けるために,なるべく生成しない (意図せずに王手になるのは仕方がない) promote, captureは生成しない. [詳細]

#include <addEffect8.h>

すべてのメンバ一覧

Static Public メソッド

template<class Action >
static void generate (const NumEffectState &state, Action &action)
 敵の8近傍に利きを付ける手の生成. 欲しい仕様は8近傍のどこかにこれまで利きのなかった駒の利きが追加されること.
static void generate (const NumEffectState &state, MoveVector &out)
template<class Action >
static void generateNotBigDrop (const NumEffectState &state, Action &action)
 大駒のdrop以外
template<class Action >
static void generateBigDrop (const NumEffectState &state, Action &action)
 大駒のdrop

説明

template<Player P>
class osl::move_generator::AddEffect8< P >

敵の8近傍に利きを付ける. 王手の手は重複を避けるために,なるべく生成しない (意図せずに王手になるのは仕方がない) promote, captureは生成しない.

引数:
P(template) - 手番の側のプレイヤー

addEffect8.h22 行で定義されています。


関数

template<Player P>
static void osl::move_generator::AddEffect8< P >::generate ( const NumEffectState &  state,
MoveVector &  out 
) [inline, static]

addEffect8.h61 行で定義されています。

参照先 osl::move_generator::AddEffect8< P >::generate(), と store().

template<Player P>
template<class Action >
void osl::move_generator::AddEffect8< P >::generate ( const NumEffectState &  state,
Action &  action 
) [inline, static]

敵の8近傍に利きを付ける手の生成. 欲しい仕様は8近傍のどこかにこれまで利きのなかった駒の利きが追加されること.

  • 全体としてそのマスへの利きが減っても可. (例) * * * * * +GI -OU * +GI ->-OU * * * * * * * * 21,23の利きは減っているが22の利きが発生している
  • 王手は除外する.
  • 王によって8近傍に利きをつける手も除外する.
  • 自殺手は生成してしまってもよい.
  • 盤外に利きを付けてしまうこともある. 追加利きで対応しない例 +RY * * * +RY+NG * * * +GI * -OU -> * * * -OU * * * * * * * * open attackは同じ手を2回生成してしまうことがある. effectUtilを使えばOK -> 未 open attackは王手を生成してしまうことがある. TODO: pawn,rook,bishopが成れるときは常に成る -> DONE (openによるattackの時は成らないこともある -> 困った) 2段目の香車は必ず成る -> DONE 飛車角は敵の利きのあるところには移動しない 飛車角のdrop以外と飛車角のdrop 飛車角のdropは全部作らない
    • 敵の利きのない一番近いところと二番目に近いところのみ作る -> DONE -> 本当は自分のlongをふさがないものが欲しい -> 未 追加利きもつける 歩の前には歩以外は?? -> 未 利きの数が(敵玉も含めて)even以上の時 -> 未
      引数:
      state - 対象とする局面
      action - 手が存在した時に呼び出すコールバック関数

addEffect8.tcc463 行で定義されています。

参照先 osl::move_generator::AddEffect8< P >::generateBigDrop(), と osl::move_generator::AddEffect8< P >::generateNotBigDrop().

参照元 osl::move_generator::AddEffect8< P >::generate().

template<Player P>
template<class Action >
void osl::move_generator::AddEffect8< P >::generateBigDrop ( const NumEffectState &  state,
Action &  action 
) [inline, static]

大駒のdrop

addEffect8.tcc428 行で定義されています。

参照先 target.

参照元 osl::move_generator::AddEffect8< P >::generate().

template<Player P>
template<class Action >
void osl::move_generator::AddEffect8< P >::generateNotBigDrop ( const NumEffectState &  state,
Action &  action 
) [inline, static]

大駒のdrop以外

addEffect8.tcc443 行で定義されています。

参照先 target.

参照元 osl::move_generator::AddEffect8< P >::generate().


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義
Sun May 16 09:58:25 2010に生成されました。  doxygen 1.6.3