All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
promote_.h
Go to the documentation of this file.
1 #ifndef OSL_MOVE_GENERATOR_PROMOTE_H
2 #define OSL_MOVE_GENERATOR_PROMOTE_H
7 namespace osl
8 {
9  namespace move_generator
10  {
17  template<Player P,bool NoCapture=true>
18  class Promote
19  {
20  public:
21  template<class Action, Ptype T>
22  static void generateMovesPtype(const NumEffectState& state, Action& action);
23  template<Ptype T>
24  static void generatePtype(const NumEffectState& state, MoveVector& out)
25  {
27  generateMovesPtype<move_action::Store,T>(state, store);
28  }
29  template<class Action>
30  static void generateMoves(const NumEffectState& state, Action& action);
31 
32  static void generate(const NumEffectState& state, MoveVector& out)
33  {
35  generateMoves(state, store);
36  }
37  };
38 
42  template<bool NoCapture>
44  {
45  template<class Action>
46  static void generate(Player p, const NumEffectState& state, Action& action)
47  {
48  if (p == BLACK)
50  else
52  }
53  };
54  }
55 }
56 #endif /* OSL_MOVE_GENERATOR_PROMOTE_H */
57 // ;;; Local Variables:
58 // ;;; mode:c++
59 // ;;; c-basic-offset:2
60 // ;;; End: