Libsaki
Core library of Pancake Mahjong
table_tester.h
1 #ifndef SAKI_TABLE_TESTER_H
2 #define SAKI_TABLE_TESTER_H
3 
4 #include "table.h"
5 
6 
7 
8 namespace saki
9 {
10 
11 
12 
14 {
15 public:
18  struct Decision
19  {
20  Action action;
21  bool abortTable = false;
22  };
23 
24  virtual ~TableDecider() = default;
25 
26  virtual Decision decide(const TableView &view) = 0;
27 };
28 
29 
30 
32 {
33 public:
34  explicit TableTester(Table &table, std::array<TableDecider *, 4> deciders);
35 
36  void run(bool fromHalfWay = false);
37 
38 private:
39  Table &mTable;
40  std::array<TableDecider *, 4> mDeciders;
41 };
42 
43 
44 
45 } // namespace saki
46 
47 
48 
49 #endif // SAKI_TABLE_TESTER_H
Definition: table.h:87
Definition: table_tester.h:31
Definition: table_tester.h:13
Definition: action.h:27
Definition: ai.cpp:18
Definition: table_view.h:18
Definition: table_tester.h:18