Libsaki
Core library of Pancake Mahjong
table_view_real.h
1 #ifndef SAKI_TABLE_VIEW_REAL_H
2 #define SAKI_TABLE_VIEW_REAL_H
3 
4 #include "table_view.h"
5 
6 
7 
8 namespace saki
9 {
10 
11 
12 
13 class Table;
14 class Girl;
15 
16 
17 
18 class TableViewReal : public TableView
19 {
20 public:
21  explicit TableViewReal(const Table &table, Who self);
22  TableViewReal(const TableViewReal &copy) = default;
23 
24  const Choices &myChoices() const override;
25  const Girl &me() const override;
26  const Hand &myHand() const override;
27  int myRank() const override;
28 
29  int getRound() const override;
30  Who getDealer() const override;
31  const TableFocus &getFocus() const override;
32  const T37 &getFocusTile() const override;
33  const util::Stactor<T37, 5> &getDrids() const override;
34  const Rule &getRule() const override;
35  int getSelfWind(Who who) const override;
36  int getRoundWind() const override;
37  TileCount visibleRemain() const override;
38  Who findGirl(Girl::Id id) const override;
39 
40  const River &getRiver(Who who) const override;
41  const util::Stactor<M37, 4> &getBarks(Who who) const override;
42 
43  bool genbutsu(Who whose, T34 t) const override;
44  bool riichiEstablished(Who who) const override;
45  bool isMenzen(Who who) const override;
46  bool isAllLast() const override;
47  bool inIppatsuCycle() const override;
48 
49 private:
50  const Table &mTable;
51 };
52 
53 
54 
55 } // namespace saki
56 
57 
58 
59 #endif // SAKI_TABLE_VIEW_REAL_H
Definition: lobject.h:497
Definition: rule.h:13
Definition: table_focus.h:13
Definition: table.h:87
Definition: tile.h:25
Definition: tile_count.h:17
Choice set of one player.
Definition: choices.h:122
Definition: ai.cpp:18
Definition: table_view_real.h:18
Definition: table_view.h:18
Definition: hand.h:17
Definition: tile.h:353
Stactor = statically allocated vector.
Definition: stactor.h:247
Base class for skill implementation.
Definition: girl.h:35
Definition: who.h:14