2022-12-20 23:51:27 -05:00
|
|
|
import random
|
|
|
|
|
|
|
|
class Deck:
|
2022-12-22 18:30:42 -05:00
|
|
|
def __init__(self, n_decks):
|
|
|
|
self.cards = []
|
|
|
|
self.n_decks = n_decks
|
2022-12-20 23:51:27 -05:00
|
|
|
|
|
|
|
def count(self):
|
|
|
|
return len(self.cards)
|
|
|
|
|
|
|
|
def shuffle(self, n_decks):
|
2022-12-22 19:15:38 -05:00
|
|
|
self.cards = []
|
2022-12-27 18:00:36 -05:00
|
|
|
n_decks = 1 if not n_decks or n_decks not in '12345678' else int(n_decks)
|
2022-12-20 23:51:27 -05:00
|
|
|
suits = '♠♥♦♣'
|
2022-12-22 05:00:59 -05:00
|
|
|
cards = 'A234567890JQK'
|
2022-12-26 16:37:04 -05:00
|
|
|
|
2022-12-20 23:51:27 -05:00
|
|
|
while n_decks > 0:
|
|
|
|
self.cards += [card + suit for card in cards for suit in suits]
|
|
|
|
n_decks -= 1
|
2022-12-22 18:30:42 -05:00
|
|
|
|
|
|
|
def check(self):
|
2022-12-26 16:37:04 -05:00
|
|
|
if self.count() < 1:
|
2022-12-22 18:30:42 -05:00
|
|
|
self.shuffle(self.n_decks)
|
2022-12-20 23:51:27 -05:00
|
|
|
|
|
|
|
def draw(self):
|
2022-12-22 18:30:42 -05:00
|
|
|
self.check()
|
2022-12-20 23:51:27 -05:00
|
|
|
return self.cards.pop(random.choice(range(self.count())))
|
2022-12-22 18:30:42 -05:00
|
|
|
|