sukurkite black jack žaidimą konsolėje. Žaidžia žaidėjas(Player) prieš kompiuterį(Dealer). Žaidimo eiga (taisyklės supaprastintos):
- Kompiuteris padalija sau ir žaidėjui po 2 kortas. Matome tik vieną iš dviejų kortų, kurias turi kompiuteris (dyleris).
- Žaidėjo tikslas surinkti kuo daugiau taškų iki 21, tačiau viršijus pralaimima.
- Žaidėjui duodama galimybė traukti papildomas kortas, kol jis nuspręs kad gana, arba perrinks ir pralaimės.
- Kompiuteris sprendžia ar jam reikia papildomų kortų, kad surinktų daugiau už žaidėją. Jeigu reikia - traukia. Tikslas - surinkti daugiau už žaidėją, nesurenkant daugiau, negu 21.
- Tūzas yra "minkšta" korta - gali turėti 11 arba 1 tašką - kaip naudingiau žaidėjams.
Supaprastintos taisyklės reiškia, kad atsisakoma statymų, double, split, pasidavimo ir draudimo pirkimo veiksmų. Dyleris tiesiog bando įveikti žaidėją, surinkdamas daugiau taškų.
GALIMA programavimo eiga:
- Reikės 5-ių klasių - Card, Deck, Player, Dealer, Game.
- Card turi turėti savybes:
- suite (kortos rūšis)
- rank (kortos rangas)
- points (metodas, kaip savybė) - kiek taškų turi korta (nuo 2 iki 10 pagal skaičių, J Q K po 10 taškų, A - 11)
- metodą repr
- metodus add, radd - entuziastams :)
- Deck - turi turėti visas kortas (kaip objektus) klasės kintamąjame cards, taip pat:
- metodą shuffle_deck
- metodą take_out (vienos kortos išėmimas iš kaladės)
- repr_
- Player:
- savybės - cards (listas)
- deck - rišam žaidėją prie kaladės
- @property qty_of_aces(taškų skaičiavimui)
- @property points - su visa tūzų, kaip "minkštos" kortos logika.
- metodas draw (arba hit) - žaidėjas pasirenka traukti papildomą kortą
- class Dealer(Player):
- savybės - deck, player (surišam su kitų klasių objektais)
- savybė cards
- metodas make_decision - kompiuteris nusprendžia nusprendžia ar traukti dar vieną kortą
- metodas deal - padalina sau ir žaidėjui po 2 kortas
- Klasė Game gali prasidėti taip:
class Game:
deck = Deck()
player = Player(deck=deck)
dealer = Dealer(deck=deck, player=player)
- metodas show_table (rodo dylerio ir žaidėjo kortas)
- metodas play - jame visa žaidimo logika, while ciklai ir t.t.