Nowa talia

0

Witajcie przyjaciele. Moze mi ktoś pomoże. Czemu w tym kodzie nie działa mi metoda"nowy_dek"? Jest ona odpowiedzialna za utworzenie wszystkich kombinacji obiektów klasy "Karta" z samej góry. (Czyli po prostu nowego deku) Pisze że FIGURA i RANGA nie są zdefiniowane, mimo że są :/

class Karta(object):
    """Karta"""
    figura = ["9","10","J","Q","K","A"]
    kolor = ["kier","pik","karo","trefl"]

    def __init__(self,figura,kolor):
        self.figura = figura
        self.kolor = kolor

    def __str__(self):
        co = self.figura + "_" + self.kolor
        return co

class Reka(object):

    def __init__(self):
        self.lista = []

    def __str__(self):
        co = ""
        if self.lista:
            for x in self.lista:
                co += str(x) + " " + "- "
        else:
            print("Reka jest pusta")
        return co

    def branie(self,karta):
        self.karta = karta
        self.lista.append(karta)

    def przekazywanie(self,karta,komu):
        self.karta = karta
        self.komu = komu
        self.lista.remove(karta)
        self.komu.branie(karta)

class Dek(Reka):

    def nowy_dek(self):
        for x in Karta.kolor:
            for x in Karta.figura:
                self.branie(Karta(figura,kolor))
                   
talia = Dek()
talia.nowy_dek()
print(talia)

"""To co ponizej nie jest wazne"""
       
karta1 = Karta(figura = "9", kolor = "kier")
karta2 = Karta(figura = "10", kolor = "pik")
karta3 = Karta(figura = "J", kolor = "karo")
karta4 = Karta(figura = "Q", kolor = "trefl")
karta5 = Karta(figura = "K", kolor = "kier")
karta6 = Karta(figura = "A", kolor = "pik")
        
moja_reka = Reka()
druga_reka = Reka()

moja_reka.branie(karta1)
moja_reka.branie(karta2)
moja_reka.branie(karta3)
moja_reka.branie(karta4)
moja_reka.branie(karta5)

moja_reka.przekazywanie(karta1,druga_reka)
        
print(moja_reka)

print(druga_reka)

druga_reka.przekazywanie(karta1,moja_reka)

print("Po ponownym przekazaniu")
print(moja_reka)

print(druga_reka)

2
 for x in Karta.kolor:
     for x in Karta.figura:
         self.branie(Karta(figura,kolor))

po pierwsze używasz dwa razy tego samego iksa, po drugie musisz się odnieść do figury właśnie tym iksem

 for kol in Karta.kolor:
     for fig in Karta.figura:
         self.branie(Karta(fig, kol))
0

Przyjacielu sugar, dziękuję Ci bardzo za pomoc! Dzięki Tobie działa! :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1