Objekti Komplet

Sedaj, ko imamo objekte Karta, ki predstavljajo igralne karte, je naslednji logični korak, da definiramo razred Komplet, ki bo predstavljal komplet kart. Seveda je komplet kart sestavljen iz kart, zato bo vsak objekt Komplet, kot lastnost, vseboval tabelo kart. Veliko iger s kartami potrebuje vsaj dva različna kompleta – rdečega in modrega.

Definirajmo razred Komplet. Inicializacijska metoda ustvari tabelo kart, ki jih komplet vsebuje, in jo napolni z 52-imi kartami:

class Komplet:

  def __init__(self):
    self._karte = []
    for barva in range(4):
      for vrednost in range(1, 14):
        self._karte.append(Karta(barva, vrednost))

Najlažji način, da napolnimo komplet kart je, da uporabimo vgnezdeno zanko. Z zunanjo zanko oštevilčimo barve od 0 do 3. Z notranjo zanko pa oštevilčimo vrednosti od 1 do 13. Ker se zunanja zanka izvede 4-krat, notranja zanka pa 13-krat, je skupno število kart, ki jih dodamo v tabelo enako 52 (4 krat 13). Vsaka iteracija ustvari nov objekt Karta s trenutno barvo in vrednostjo ter ga doda v tabelo kart. Sedaj lahko ustvarimo kompleta kart:

rdeci_komplet = Komplet()
modri_komplet = Komplet()