programming_tutorials/01_oop_basics/11_monopoly_tiles.txt

185 lines
10 KiB
Plaintext

|--------------------------------------------------------------------------|
| 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<Tile *> 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