Files
42-Piscine_Python/07/ex1/Deck.py
2026-03-02 15:49:13 +01:00

50 lines
1.3 KiB
Python

from ex0 import Card, CreatureCard
class Deck:
def __init__(self) -> None:
self.cards: list[Card] = []
def add_card(self, card: Card) -> None:
self.cards += [card]
def remove_card(self, card_name: Card) -> None:
for n in range(len(self.cards)):
if self.cards[n].name == card_name:
self.cards.pop(n)
return
print("{card_name} not found")
def shuffle(self) -> None:
from random import shuffle
shuffle(self.cards)
def draw_card(self) -> Card:
self.shuffle()
return self.cards.pop()
def get_deck_stats(self) -> dict:
from .ArtifactCard import ArtifactCard
from .SpellCard import SpellCard
creatures = 0
spells = 0
artifacts = 0
total_cost = 0.0
for card in self.cards:
if isinstance(card, CreatureCard):
creatures += 1
elif isinstance(card, ArtifactCard):
artifacts += 1
elif isinstance(card, SpellCard):
spells += 1
total_cost += card.cost
return {
"total_card": len(self.cards),
"creatures": creatures,
"spells": spells,
"artifacts": artifacts,
"avg_cost": total_cost / len(self.cards),
}