Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- class Card:
- def __init__(self, value, suit):
- self.value = value
- self.suit = suit
- def __gt__(self, card: "Card"):
- if self.value == 1:
- return True
- if card.value == 1:
- return False
- if self.value == card.value:
- return self.suit > card.suit
- return self.value > card.value
- def __str__(self):
- return f"Card value {self.value}, suit {self.suit}"
- class Deck:
- def __init__(self):
- self._cards = []
- for value in range(1, 13+1):
- for suit in range(1, 4+1):
- self._cards.append(Card(value, suit))
- def cards_shuffle(self):
- random.shuffle(self._cards)
- def deal_one(self):
- return self._cards.pop(
- random.randrange(1, len(self._cards) - 1)
- )
- class Player:
- def __init__(self, name, cards_quantity):
- self.name = name
- self.cards_quantity = cards_quantity
- self._cards = []
- def set_hand(deck: Deck):
- for c in range(1, self.cards_quantity + 1):
- self._cards.append(deck.deal_one())
- def get_card(self):
- return self._cards.pop(
- random.randrange(1, len(self._cards) - 1)
- )
- def add_card(self, card: Card):
- self._cards.append(card)
- class CardGame:
- deck: Deck
- player1: Player
- player2: Player
- def __init__(self, player1, player2, cards_quantity):
- self._game_started = False
- cards_quantity_ = cards_quantity if 10 < cards_quantity < 26 else 26
- self.new_game()
- def new_game(self):
- if self._game_started:
- raise Exception("Fuck you!")
- self.deck = Deck()
- self.deck.cards_shuffle()
- self.player1 = Player()
- self.player1.set_hand(self.deck)
- self.player2 = Player()
- self.player2.set_hand(self.deck)
Add Comment
Please, Sign In to add comment