All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Static Public Member Functions | List of all members
osl::move_generator::AddEffect8< P > Class Template Reference

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

#include <addEffect8.h>

Public Member Functions

template<class Action >
void generateBigDrop (const NumEffectState &state, Action &action)
 
template<class Action >
void generateNotBigDrop (const NumEffectState &state, Action &action)
 
template<class Action >
void generate (const NumEffectState &state, Action &action)
 

Static Public Member Functions

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

Detailed Description

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

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

Parameters
P(template)- 手番の側のプレイヤー

Definition at line 22 of file addEffect8.h.

Member Function Documentation

template<Player P>
template<class Action >
static void osl::move_generator::AddEffect8< P >::generate ( const NumEffectState &  state,
Action &  action 
)
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以上の時 -> 未
    Parameters
    state- 対象とする局面
    action- 手が存在した時に呼び出すコールバック関数

Referenced by osl::move_generator::AddEffect8< P >::generate(), and osl::move_generator::GenerateAddEffect8::generate().

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

Definition at line 61 of file addEffect8.h.

References osl::move_generator::AddEffect8< P >::generate(), and store().

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

Definition at line 504 of file addEffect8.tcc.

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

Definition at line 469 of file addEffect8.tcc.

References target.

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

Definition at line 484 of file addEffect8.tcc.

References target.


The documentation for this class was generated from the following files: