См. Ответ Дэниэла на проблему с вашей логикой.Но я бы предложил переделать вашу логику.Нет причин иметь сложные индексы или две разные колоды.
Вот как я создаю колоды в покерной программе, которую я создал:
for _ in range(decks_):
for val in (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14):
for suit in ("Hearts", "Spades", "Clubs", "Diamonds"):
self.cards.append(Card(val, suit))
if self.shuffle_cards:
shuffle(self.cards)
У вас нет нескольких колод, поэтому выВам не нужен первый цикл for
, если вы не хотите добавлять больше колод в будущем.
Вы можете определить словари именования следующим образом:
value_names = {2: 'Two', 3: 'Three', 4: 'Four', 5: 'Five', 6: 'Six', 7: 'Seven', 8: 'Eight', 9: 'Nine',
10: 'Ten', 11: 'Jack', 12: 'Queen', 13: 'King', 14: 'Ace'}
suit_names = {"Hearts": '♥', "Spades": '♠', "Clubs": '♣', "Diamonds": '♦'}
И затем определить класс вашей карты какитак:
class Card:
"""A class containing the value and suit for each card"""
def __init__(self, value, suit):
self.value = value
self.suit = suit
self.vname = value_names[value]
self.sname = suit_names[suit]