Razred BlackJackIgralec

Napišimo nov razred z imenom BlackJackIgralec, ki bo predstavljal igralca igre Black Jack. Nov, razširjeni razred bomo potrebovali, saj nas bo zanimalo koliko kart ima igralec (pri igri Black Jack jih ima lahko največ 5), kolikšna je vrednost kart in ali ima igralec kombinacijo, imenovano Black Jack. Pri tej kombinaciji ima igralec dve karti, ki sta skupaj vredni 21 in od katerih je ena karta as, druga pa karta z vrednostjo 10 – desetka, fant, dama ali kralj. Razred BlackJackIgralec nima metod __init__ in __str__ kot bi morda pričakovali, saj ju podeduje iz (splošnejšega) starševskega razreda Igralec.

Najprej napišimo metodo vrednost_kart, ki izračuna vsoto vrednosti kart, ki jih ima igralec v roki. Pri tem je vrednost figur (fant, dama, kralj) in desetk enaka 10, vrednost asa je enaka 1 ali 11 (kar bolj odgovarja igralcu), vrednost preostalih kart pa je enaka vrednosti, ki je zapisana na kartah:

class BlackJackIgralec(Igralec):

  def vrednost_kart(self):
    vsota = 0
    for karta in self._karte:
      if karta._vrednost >= 10: # figura ali 10
        vsota += 10
      elif karta._vrednost > 1: # karta od 2 do 9
        vsota += karta._vrednost
      else: # as, prištej 1 ali 11
        if vsota + 11 <= 21:
          vsota += 11
        else:
          vsota += 1
    return vsota


Napišimo metodo stevilo_kart, ki vrne število kart, ki jih ima igralec v roki:

class BlackJackIgralec(Igralec):
  # ...

  def stevilo_kart(self):
    return len(self._karte)

Izvedi Počisti