class Karta:
_barve = ["Pikov", "Srčev", "Karin", "Križev"]
_opisi = [None, "as", "2", "3", "4", "5", "6", "7",
"8", "9", "10", "fant", "dama", "kralj"]
def __init__(self, barva=0, vrednost=0):
""" Inicializator """
self._barva = barva
self._vrednost = vrednost
def __str__(self):
""" Vrne niz, ki predstavlja karto """
b = self._barva
v = self._vrednost
k = "" # Končnica za moško obliko
if (v >= 2 and v <= 10 or v == 12):
k = "a" # Končnica za žensko obliko
return (self._barve[b] + k + " " + self._opisi[v])
def cmp(self, karta):
""" Primerja dve karti """
# Preveri barve
if self._barva > karta._barva: return 1
if self._barva < karta._barva: return -1
# Ista barva... preveri vrednosti
if self._vrednost > karta._vrednost or \
self._vrednost == 1 and karta._vrednost > 1:
return 1
if self._vrednost < karta._vrednost or \
self._vrednost > 1 and karta._vrednost == 1:
return -1
# Ista vrednost... ista karta
return 0
def __eq__(self, karta):
""" Prekrije operator == za primerjanje kart """
return self.cmp(karta) == 0
def __le__(self, karta):
""" Prekrije operator <= za primerjanje kart """
return self.cmp(karta) <= 0
def __ge__(self, karta):
""" Prekrije operator >= za primerjanje kart """
return self.cmp(karta) >= 0
def __gt__(self, karta):
""" Prekrije operator > za primerjanje kart """
return self.cmp(karta) > 0
def __lt__(self, karta):
""" Prekrije operator < za primerjanje kart """
return self.cmp(karta) < 0
def __ne__(self, karta):
""" Prekrije operator != za primerjanje kart """
return self.cmp(karta) != 0
karta1 = Karta(2, 1) # Srčev as
karta2 = Karta(2, 13) # Srčev kralj
print(karta1 < karta2)
print(karta1 > karta2)