jeudi 5 mars 2020

Python random shuffle not working in my even though it should

Hello guys first time posting here. I have a problem i cant explain. I am trying to replicate poker but my deck shuffle function isnt working
First my code

class Start(object):
openCards = []
def __init__(self, numofplayer):
    print("started")
    finished = False
    self.deck = Deck()
    self.deck.shuffle()
    for card in self.deck:
        card.isshowing = True
        print(card)
    self.players = []
    i = 0
    while i < numofplayer:
        player = Player()
        self.players.append(player)
        i = i + 1



class Deck(list):

def __init__(self):
    self.cards = []
    suits = ["Herz", "Piek", "Karo", "Kreuz"]
    values = {
        "zwei": 2,
        "drei": 3,
        "vier": 4,
        "fünf": 5,
        "sechs": 6,
        "sieben": 7,
        "acht": 8,
        "neun": 9,
        "zehn": 10,
        "bube": 11,
        "dame": 12,
        "könig": 13,
        "ass": 14
    }

    for value in values:
        for suit in suits:
            self.cards.append(Card(value, suit))

def shuffle(self):

    random.shuffle(self)
    print("Karten gemischt")

def __repr__(self):
    cardsleft = len(self.cards)
    return "Es sind noch {0} karten übrig".format(cardsleft)

def deal(self):
    return self.cards.pop(0)

Ok so my problem at self.deck.shuffle() as i think this should randomize the order of my deck but if i take a look at the variable in debug mode its still in ist standard order. why?




Aucun commentaire:

Enregistrer un commentaire