#ifndef PLAYER_H #define PLAYER_H #include "string.h" class Player { public: String get_name(); void set_name(const String &name); int get_tile_index() const; void set_tile_index(const int val); int get_money() const; void set_money(const int val); int get_jail_time() const; void set_jail_time(const int val); bool get_lost() const; void set_lost(const bool val); virtual bool want_buy(const String &tile_name, int price); virtual int throw_dice(); virtual void on_lose(); virtual void print(); virtual String get_class_name(); Player(); virtual ~Player(); protected: String _name; int _tile_index; int _money; int _jail_time; bool _lost; }; class AgressivePlayer : public Player { public: bool want_buy(const String &tile_name, int price); void on_lose(); String get_class_name(); AgressivePlayer(); }; class ConservativePlayer : public Player { public: bool want_buy(const String &tile_name, int price); void on_lose(); String get_class_name(); ConservativePlayer(); }; class TrickyPlayer : public Player { public: bool want_buy(const String &tile_name, int price); void on_lose(); String get_class_name(); TrickyPlayer(); }; class HumanPlayer : public Player { public: bool want_buy(const String &tile_name, int price); void on_lose(); String get_class_name(); HumanPlayer(); }; class CheatingPlayer : public Player { public: bool want_buy(const String &tile_name, int price); int throw_dice(); void on_lose(); String get_class_name(); CheatingPlayer(); }; #endif