Fixed Card class to convert rank attribute to convert range(2, 11) in VALID_RANKS to strings

This commit is contained in:
Donald Calloway 2025-09-25 18:58:09 -07:00
parent 199414a6ad
commit 657e0ea6a8

View File

@ -8,11 +8,18 @@ RANK_ORDER = {str(n): n for n in range(2, 11)}
RANK_ORDER.update({"A": 1, "J": 11, "Q": 12, "K": 13}) RANK_ORDER.update({"A": 1, "J": 11, "Q": 12, "K": 13})
# Card, Deck, DiscardPile, Hand, Player, Game classes # Card, Deck, DiscardPile, Hand, Player, Game classes
VALID_RANKS = [str(n) for n in range(2, 11)] + ["J", "Q", "K", "A"]
class Card: class Card:
suits = ['', '', '', ''] suits = ['', '', '', '']
ranks = list(range(1, 11)) + ['J', 'Q', 'K'] ranks = VALID_RANKS
def __init__(self, rank, suit): def __init__(self, rank, suit):
rank = str(rank)
if rank not in VALID_RANKS:
raise ValueError(f"Invalid rank: {rank}")
if suit not in self.suits:
raise ValueError(f"Invalid suit: {suit}")
self.rank = rank self.rank = rank
self.suit = suit self.suit = suit