Advertisement
Guest User

Untitled

a guest
Oct 27th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.84 KB | None | 0 0
  1. 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.
  2.  
  3. 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.
  4.  
  5. Egy kör:
  6. 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.
  7. 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.
  8. 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()).
  9.  
  10. 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.
  11.  
  12. 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.
  13. 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.
  14.  
  15. A modell osztálydiagramja:
  16. https://sites.google.com/site/progtechelte/gyakorlatok/5-gyakorlat/RouletteClassDiagram.png
  17.  
  18. Megoldás:
  19. https://sites.google.com/site/progtechelte/roulette.rar?attredirects=0&d=1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement