winCountTracer.h Source File

- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
winCountTracer.h
Go to the documentation of this file.
1 /* winCountTracer.h
2 */
3 #ifndef GAME_PLAYING_WINCOUNTTRACER_H
4 #define GAME_PLAYING_WINCOUNTTRACER_H
5
6 #include "osl/game_playing/openingBookTracer.h"
7 #include "osl/stl/stack.h"
8
9 namespace osl
10 {
11 namespace record
12 {
13 namespace opening
14 {
15 class WinCountBook;
16 }
17 }
18 namespace game_playing
19 {
23 class WinCountTracer : public OpeningBookTracer
24 {
25 public:
26 typedef record::opening::WinCountBook WinCountBook;
27 private:
28 WinCountBook& book;
29 int state_index;
30 Player turn;
31 int randomness;
32 bool verbose;
33 osl::stack<int> state_stack;
34 public:
35 /* @param randomness ゼロ以外の場合，最良でない手も確率的に選択 */
36 explicit WinCountTracer(WinCountBook&,
37 int randomness=0, bool verbose=false);
38 WinCountTracer(const WinCountTracer&);
39 OpeningBookTracer* clone() const;
40
41 void update(Move);
42 const Move selectMove() const;
43
44 int stateIndex() const { return state_index; }
45 bool isOutOfBook() const;
46 void popMove();
47 };
48 } // namespace game_playing
49 } // namespace osl
50
51 #endif /* _WINCOUNTTRACER_H */
52 // ;;; Local Variables:
53 // ;;; mode:c++
54 // ;;; c-basic-offset:2
55 // ;;; End: