Mešanje in urejanje kompleta kart

Če je komplet kart popolnoma premešan, potem je za vsako karto enako verjetno, da se pojavi kjerkoli v kompletu in hkrati je za vsak položaj v kompletu enako verjetno, da vsebuje katerokoli karto.

Za mešanje kompleta kart lahko uporabimo funkcijo shuffle iz modula random, ki premeša elemente v tabeli in to kar na mestu (kar pomeni, da spremeni vrstni red elementov neposredno v tabeli). Modul random moramo najprej vključiti v našo kodo, šele nato ga lahko uporabimo oziroma uporabimo funkcije iz tega modula.

Za urejanje kompleta kart uporabimo funkcijo sort, ki uredi elemente v tabeli.

Tako lahko ustvarimo metodo premesaj, ki premeša karte in metodo uredi, ki uredi karte, z uporabo že obstoječih modulov in funkcij:

class Komplet:
  # ...

  def premesaj(self):
    import random
    random.shuffle(self._karte)

  def uredi(self):
    self._karte.sort()


rdeci_komplet = Komplet()
rdeci_komplet.premesaj()
print(rdeci_komplet)
rdeci_komplet.uredi()
print(rdeci_komplet)

Primer v interaktivnem urejevalniku prikazuje uporabo metod za mešanje in urejanje kompleta kart. Najprej izpiše premešani komplet kart, nato pa še urejeni komplet kart.


 
1
class Karta:
55
56
57
class Komplet:
58
59
  def __init__(self):
65
66
  def __str__(self):
72
73
  def premesaj(self):
74
    """ Premeša karte v kompletu """
75
    import random
76
    random.shuffle(self._karte)
77
78
  def uredi(self):
79
    """ Uredi karte v kompletu """
80
    self._karte.sort()
81
82
83
rdeci_komplet = Komplet()
84
rdeci_komplet.premesaj()
85
print(rdeci_komplet)
86
rdeci_komplet.uredi()
87
print(rdeci_komplet)
88

Izvedi Počisti