Как правильно сделать колоду из карт, хранящихся в таблице?
Итак у меня есть база данных вида

Далее я получаю любую карту типа tuple из бд с помощью метода:
def get_card_by_id(id):
cur = db_bj.cursor()
result = cur.execute(
f'SELECT value,card_suit,sticker_id FROM cards WHERE id="{id}"').fetchone()
print(result)
return result
после этого хочу создать колоду используя namedtuple
from utils.db_api.handler import get_card_by_id
Card = namedtuple('Card', ['value', 'card_suit', 'sticker_id'])
new_deck = []
for i in range(0, 14):
id = i
card = get_card_by_id(id)
value = card[0]
card_suit = card[1]
sticker_id = card[2]
Card = Card(value, card_suit, sticker_id)
new_deck.append(Card)
print(new_deck)
но упираюсь в то, что не могу понять как надо это сделать правильно, чтобы потом поместить карты в класс Deck
class Deck(object):
new_deck = []
def __init__(self) -> None:
self.cards = []
self.refresh_deck()
def refresh_deck(self) -> int:
self.cards = list(map(Card, self.new_deck))
def shuffle(self) -> None:
shuffle(self.cards)
def draw_card(self) -> Card:
return self.cards.pop()
Ответы (1 шт):
Автор решения: yspesny
→ Ссылка
Что-то вроде того? Без доступа к Бд сложновато
def create_deck():
new_deck = []
for i in range(0, 14):
id = i
card = get_card_by_id(id)
value = card[0]
card_suit = card[1]
sticker_id = card[2]
Card = Card(value, card_suit, sticker_id)
new_deck.append(Card)
print(new_deck)
return new_deck
deck = Deck()
deck.cards.append(create_deck())