Írni fogunk egy leegyszerűsített Monopoly szerűséget. Ebben a példában már használni fogunk öröklődést, és polimorfizmust is! ---------------------------------------------------------------------- Ahol csak lehet, használd fel az előzőleg megírt osztályaidat! Ha szükséged van egy függvényre, amely nem található meg még a már kész osztályodban, akkor azt add hozzá. Például ha a Math osztályodba a te megoldásodhoz hiányzik valamilyen függvény, akkor oda írd meg, ne csak direktbe felhasználd valamelyik beépített header-ből! Ha a vektorod remove() függvénye nem tartja meg a sorrendet, akkor adj hozzá egy remove_keep_order() függvényt. Egyéb: Kicsit kiegyszerűsítettem az UML diagramokat, már gyakorlatilag c++ kódként néznek ki. Az előző feladatokban a tárgy által elvárt módon voltak írva, de mostantól nem fogom annyira átszerkeszteni. ---------------------------------------------------------------------- A játékszabályok, amiket implementálni fogunk: A játék n db ját;kossal indul. Mindenkinek van valamennyi pénze (legyen egyenként megadható). És van egy játékmező. (Mint a valódi monopolyban kb). A játékmezőn vannak mezők. Ezeknek a típusai: - TaxTile - Amikor a játékos rálép ennyi adót kell fizetnie. - 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. - GainTile - Aki rálép az egy meghatározott összeget kap. - LuckTile - Aki rálép kaphat megadott %-nyi eséllyel, két megadott érték közötti pénzt. - JailTile - Aki rálép, a megadott környi ideig börtönbe kerül, azaz annzi körig nem léphet. Egy játékos akkor esik ki, ha elfogyott minden pénze. Az nyer, aki a legutoljára bent marad. A játékosok előre meghatározott, fix sorrendben jönnek egymás után, a körük elején dobnak 1db 6 oldalú dobókockával, majd annyit lépnek, amennyit dobtak, és a mező amire érkeztek hattásal lesz rájuk. A játékosok a játékmezőn körbe-körbe haladnak. A játékot úgy fogjuk megírni, hogy legyenek különböző személyiségü gépi játékosok: Agresszív: Mindent megvesz, amíg van rá pénze. Konzervatív: Ha a mező ára kevesebb, mint a pénzének a fele, akkor megveszi, Ügyeskedő: 50% eséllyel megveszi a mezőt, ha van rá lehetősége. Emberi: Megkérdezi a felhasználót, hogy mit akar tenni. Csaló: Mindent megvesz, amit csak tud. (csak 4, 5, 6-okat dobhat) A játékosok beállításait, és a mezőket is fájlból töltsük be. Konzolos program lesz, szóval mindent ami fontos, a konzolra kell majd kiírnunk, és a konzolról kell beolvasni, ha kérdezni szeretnénk a felhasználótól. A feladat, hogy ezt implementáljuk.