|--------------------------------------------------------------------------| | class Tile | |--------------------------------------------------------------------------| | + String get_name(); | | + void set_name(const String &name); | | | | + virtual void on_player_arrived(Player *p); | | | | + virtual void reset(); | | | | + virtual void print(); | | + virtual String get_class_name(); | | | | + Tile(); | | + virtual ~Tile(); | | | | - String _name; | |--------------------------------------------------------------------------| A Mező osztály. A rendszer majd az on_player_arrived() függvényt hívja meg, miután egy játékos dobott, és rálép a következő mezőre. Ez a függvény mindent releváns információt írjon a konzolra. Itt maja a Mező fogja pl növelni a játékos pénzét, vagy börtönbe tenni, vagy megkérdezni, hogy meg akarja-e venni meg át a mezőt. reset() csak a OwnableTile fog itt valamit csinálni, ugyanis ebben ki fogja nullázni a tulajdonosát. (Ez két játék közötti kinullázásra való) A többit, ami esetleg nem triviális, lásd a player-nél. |--------------------------------------------------------------------------| | class TaxTile : public Tile | |--------------------------------------------------------------------------| | + int get_tax() const; | | + void set_tax(const int tax); | | | | + void on_player_arrived(Player *p); | | + void print(); | | + String get_class_name(); | | | | + TaxTile(); | | | | - int _tax; | |--------------------------------------------------------------------------| - TaxTile - Amikor a játékos rálép ennyi adót kell fizetnie. |--------------------------------------------------------------------------| | class OwnableTile : public Tile | |--------------------------------------------------------------------------| | + int get_price() const; | | + void set_price(const int val); | | | | + int get_enter_price() const; | | + void set_enter_price(const int val); | | | | + Player *get_owner() const; | | + void set_owner(Player *val); | | | | + void on_player_arrived(Player *p); | | + void print(); | | + void reset(); | | | | + String get_class_name(); | | | | + OwnableTile(); | | | | - int _price; | | - int _enter_price; | | - Player *_owner; | |--------------------------------------------------------------------------| - OwnableTile - Ez olyan mező, amit meg lehet venni. Van vételára, illetve egy belépési költsége. Ha egy játékos rálép, és még senkié, akkor az a játékos megveheti a vételárért cserébe. Ha nem veszi meg, nem kell fizetnie semmit. Ha valaki megveszi, akkor mindenki másnak, aki rálép meg kell fizetnie a tulajdonosnak a belépési díjat. Ha a tulajdonos kiesik a játékból, akkor az összes tulajdona felszabadul. |--------------------------------------------------------------------------| | class GainTile : public Tile | |--------------------------------------------------------------------------| | + int get_gain() const; | | + void set_gain(const int val); | | | | + void on_player_arrived(Player *p); | | + void print(); | | + String get_class_name(); | | | | + GainTile(); | | | | - int _gain; | |--------------------------------------------------------------------------| - GainTile - Aki rálép az egy meghatározott összeget kap. |--------------------------------------------------------------------------| | class LuckTile : public Tile | |--------------------------------------------------------------------------| | + int get_chance() const; | | + void set_chance(const int val); | | | | + int get_gain_min() const; | | + void set_gain_min(const int val); | | | | + int get_gain_max() const; | | + void set_gain_max(const int val); | | | | + void on_player_arrived(Player *p); | | + void print(); | | + String get_class_name(); | | | | + LuckTile(); | | | | - int _chance; | | - int _gain_min; | | - int _gain_max; | |--------------------------------------------------------------------------| - LuckTile - Aki rálép kaphat megadott %-nyi eséllyel, két megadott érték közötti pénzt. |--------------------------------------------------------------------------| | class JailTile : public Tile | |--------------------------------------------------------------------------| | + int get_jail_time() const; | | + void set_jail_time(const int val); | | | | + void on_player_arrived(Player *p); | | + void print(); | | + String get_class_name(); | | | | + JailTile(); | | | | - int _jail_time; | |--------------------------------------------------------------------------| - JailTile - Aki rálép, a megadott környi ideig börtönbe kerül, azaz annyi körig nem léphet. |--------------------------------------------------------------------------| | class TileLoader | |--------------------------------------------------------------------------| | + static Vector load_tile_file(const String &file_name); | |--------------------------------------------------------------------------| Ugyanolyan betöltő osztály, mint a játékos estében. Példa file szerkezet: Tile A TaxTile B 3433 TaxTile C 3433 OwnableTile D 222 22 OwnableTile E 222 22 OwnableTile F 222 22 GainTile G 100 TaxTile H 3433 LuckTile I 50 100 200 TaxTile J 3433 JailTile K 3 TaxTile L 3433 TaxTile M 3433 TaxTile N 3433