BlackJack
Dopolnimo metodo igraj
, ki bo za vsakega igralca (in delivca na koncu) vlekla dodatne karte, dokler bo vsota vrednosti kart manjša ali enaka 16. Pri delivcu bo metoda nastavila tudi, da druga karta ne bo več skrita. Nato bo metoda, s klicem metode izpisi_igralce
, izpisala stanje kart v rokah igralcev in delivca ob koncu igre. Nazadnje bo metoda, s klicem metode izpisi_rezultate
, izpisala še rezultate igre:
class BlackJack(Komplet): # ... def igraj(self, imena): # ... # Igralci in delivec vlečejo karte, # dokler je vsota manjša ali enaka 16 stev_igralcev = len(self._igralci) for i in range(stev_igralcev): igralec = self._igralci[i] while igralec.vrednost_kart() <= 16: # Igralec lahko ima največ 5 kart if igralec.stevilo_kart() == 5: break karta = self._karte.pop() igralec.dodaj(karta) # Če je zadnji igralec, obrni skrito karto if i == stev_igralcev-1: self._igralci[i]._skrito = False print("---------- Igralci igrajo proti delivcu") self.izpisi_igralce() # Izpis rezultatov (kdo zmaga in kdo izgubi) print("---------- Konec igre, izpis rezultatov") self.izpisi_rezultate()
Dodajmo metodo izpisi_rezultate
, ki bo za vsakega igralca izpisala njegov rezultat igre – ali je proti delivcu zmagal ali izgubil:
class BlackJack(Komplet): # ... def izpisi_rezultate(self): delivec = self._igralci[-1] # zadnji igralec rezultat_delivca = delivec.vrednost_kart() stev_igralcev = len(self._igralci) for i in range(stev_igralcev): print(self._igralci[i].rezultat(rezultat_delivca))