summaryrefslogtreecommitdiff
path: root/server/player.h
diff options
context:
space:
mode:
Diffstat (limited to 'server/player.h')
-rw-r--r--server/player.h118
1 files changed, 0 insertions, 118 deletions
diff --git a/server/player.h b/server/player.h
deleted file mode 100644
index a4b3416..0000000
--- a/server/player.h
+++ /dev/null
@@ -1,118 +0,0 @@
-#ifndef PLAYER_H
-#define PLAYER_H
-
-#include "client.h"
-#include "score.h"
-
-#include "../common/set.h"
-#include "../common/cyclicint.h"
-#include "../common/state.h"
-#include "../common/action.h"
-
-typedef CyclicInt<4> PlayerNum;
-
-class Player {
- public:
- ClientBase::p client;
-
- Tiles hand;
- Sets open;
- Tiles pond;
- bool riichi;
- int score;
- int wind;
-
- //! Indexes of tiles that will give tenpai (used after riichi declaration).
- List<int> tenpai_indexes;
-
- //! Player has won.
- bool won;
-
- //! List of han in winning hand.
- List<std::pair<std::string, int> > won_han;
-
- //! Value of winning hand.
- Score won_value;
-
- //! Prepare for a new round.
- void round_start(int w);
-
- //! Get a state snapshot.
- PlayerState get_state();
-
- //! Get a state snapshot, with concealed tiles filtered.
- PlayerState get_state_filtered();
-
- //! Get possible actions after a draw.
- Actions get_actions_draw();
-
- //! Get possible actions on discarded tile.
- Actions get_actions_discard(Tile tile, PlayerNum discarder);
-
- typedef std::vector<int> Targets;
-
- //! Check if player can declare riichi.
- bool can_riichi();
-
- //! Check if tile can be called for a chi.
- Targets can_chi(Tile tile);
-
- //! Check if tile can be called for a pon.
- int can_pon(Tile tile);
-
- //! Check if it's possible to make a concealed kan.
- Targets can_kan();
-
- //! Check if it's possible to extend a pon to a kan.
- Targets can_kan_extend();
-
- //! Check if tile can be called to kan target.
- bool can_kan(Tile tile, int target);
-
- //! Check if hand is complete.
- bool can_tsumo();
-
- //! Check if tile can be called to complete hand.
- bool can_ron(Tile tile);
-
- //! Draw tile.
- void draw(Tile tile);
-
- //! Discard tile.
- void discard(int target);
-
- //! Look at last discard in pond.
- Tile last_discard();
-
- //! Claim last discard from pond.
- Tile claim();
-
- //! Declare riichi.
- void declare_riichi();
-
- //! Make chi from tile.
- void make_chi(Tile tile, int target);
-
- //! Make pon from tile.
- void make_pon(Tile tile, int target, PlayerNum discarder);
-
- //! Make open kan from tile.
- void make_kan(Tile tile, int target, PlayerNum discarder);
-
- //! Make concealed kan.
- void make_kan(int target);
-
- //! Make extended kan.
- void make_kan_extend(int target);
-
- //! Declare win on discarded tile.
- void declare_ron(Tile tile);
-
- //! Declare win on self-drawn tile.
- void declare_tsumo();
-
- //! Calculate score for winning hand combination.
- Score calculate_score(const Sets& hand, List<std::pair<std::string, int> >& han, bool tsumo);
-};
-
-#endif