Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Modellezzünk egy kaszinóbeli rulettasztalt (RouletteTable), melynél játékosok játszanak. Az asztal a játékosokat az IRoulettePlayer interfésznél fogva kezeli. A játékosok adott mennyiségű zsetonnal (credit) rendelkeznek, és kétfélék lehetnek: véletlenszerűen játszó (RandomPlayer) és taktikusan játszó (TacticalPlayer) játékosok.
- Az egyszerűség kedvéért a játékosok nem jöhetnek-mehetnek tetszés szerint, hanem a játék elején csatlakozni kell a játékosoknak (join()) és végig játszik mindenki. Az asztal egy listába veszi fel a játékosokat. Miután mindenki beszállt, mindenki adott mennyiségű zsetont kap az asztaltól (giveCreditToAll(), mely meghívja a játékosok giveCredit() függvényét). Ezután meghatározott számú játékkör következik.
- Egy kör:
- betsPlease(): mindenkinek meg kell tennie a saját tétjét. Az egyszerűség kedvéért mindenki pontosan 1 számra tehet tétet. Ehhez az asztal meghívja a játékosok nextBetNumber() függvényét, majd a nextBetCredit() függvényét. Az előbbi hatására az adott játékosnak egy számot kell válaszolnia 0-tól 36-ig, utóbbi hatására pedig a tétet kell megadnia zsetonban mérve. Az asztal minden játékos tétjének esetében egy BetItem objektum segítségével feljegyzi az adott tétről, hogy ki a gazdája, melyik számra tett és hány zsetont. A téteknek ezen információit az asztal egy sorban tárolja.
- spin(): az asztal pörgeti a rulettet és a kapott számot (0 és 36) között feljegyzi a lastNumber változóba, és ezt visszatérési értékül visszaadja.
- payWinners(): az asztal kifizeti a nyereményeket: sorra veszi az adott körben feljegyzett téteket, és amelynél a tét száma megegyezik a pörgetéskor kapott értékkel, annak a játékosnak a tét értékenek 36-szorosát fizeti ki (giveCredit()).
- Miután minden kör lement, az asztaltól a getPlayersCredits() függvénnyel kérdezhető le egy lista formájában, hogy kinek hány kreditje van.
- A véletlenszerűen játszó játékosok minden körben egy véletlen számra tesznek (0 és 36 között). Ha a játékosnak 6-nál kevesebb kreditje van éppen, akkor azt mind felteszi, egyébként egy 1 és 5 közötti véletlen érteket tesz fel.
- A taktikusan játszó játékosok kiválasztanak egy véletlen számot (0 és 36 között), amikor zsetont kapnak az asztaltól. Erre a számra tesznek minden körben mindaddig, amíg az be nem jön (amíg ismét zsetont nem kapnak). A tét mennyiségét 2-től kezdik, és minden körben eggyel növelik. Természetesen, ha nincs annyi zsetonjuk, mint amennyi a tét lenne, akkor csak a megmaradt zsetonjaikat teszik fel.
- A modell osztálydiagramja:
- https://sites.google.com/site/progtechelte/gyakorlatok/5-gyakorlat/RouletteClassDiagram.png
- Megoldás:
- https://sites.google.com/site/progtechelte/roulette.rar?attredirects=0&d=1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement