ntesukiMoveGenerator.h Source File

- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ntesukiMoveGenerator.h
Go to the documentation of this file.
1 /* ntesukiMoveGenerator.h
2 */
3 #ifndef _NTEUSKI_MOVE_GENERATOR_H
4 #define _NTEUSKI_MOVE_GENERATOR_H
5
6 #include "osl/ntesuki/ntesukiMoveList.h"
7 #include "osl/state/numEffectState.h"
8
9 namespace osl {
10 namespace ntesuki {
11 class NtesukiRecord;
18 struct
19 NtesukiMoveGenerator
20 {
21 bool verbose;
22
23 NtesukiMoveGenerator(bool verbose = false);
24 ~NtesukiMoveGenerator();
25 template <Player T>
26 void generate(const NumEffectState& state,
27 NtesukiMoveList& moves);
28 void generateSlow(const Player T,
29 const NumEffectState& state,
30 NtesukiMoveList& moves)
31 {
32 if (T == BLACK)
33 generate<BLACK>(state, moves);
34 else
35 generate<WHITE>(state, moves);
36 }
37
38 template <Player T>
39 void generateWithRzone(const NumEffectState& state,
40 NtesukiRecord *record,
41 int pass_left,
42 NtesukiMoveList& moves);
43 void generateWithRzoneSlow(const Player T,
44 const NumEffectState& state,
45 NtesukiRecord *record,
46 int pass_left,
47 NtesukiMoveList& moves)
48 {
49 if (T == BLACK)
50 generateWithRzone<BLACK>(state, record, pass_left, moves);
51 else
52 generateWithRzone<WHITE>(state, record, pass_left, moves);
53 }
54
55 private:
56 template <Player T>
57 void setOrder(const NumEffectState& state,
58 NtesukiMoveList& moves);
59
60 };
61
62 } //ntesuki
63 } //osl
64 #endif /* _NTEUSKI_MOVE_GENERATOR_H */
65 // ;;; Local Variables:
66 // ;;; mode:c++
67 // ;;; c-basic-offset:2
68 // ;;; End: