Guest User

Untitled

a guest
Jan 10th, 2022
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.99 KB | None | 0 0
  1. import random
  2.  
  3.  
  4. class Card:
  5.     def __init__(self, value, suit):
  6.         self.value = value
  7.         self.suit = suit
  8.    
  9.     def __gt__(self, card: "Card"):
  10.         if self.value == 1:
  11.             return True
  12.         if card.value == 1:
  13.             return False
  14.         if self.value == card.value:
  15.             return self.suit > card.suit
  16.         return self.value > card.value
  17.        
  18.     def __str__(self):
  19.         return f"Card value {self.value}, suit {self.suit}"
  20.  
  21.  
  22. class Deck:
  23.     def __init__(self):
  24.         self._cards = []
  25.         for value in range(1, 13+1):
  26.             for suit in range(1, 4+1):
  27.                 self._cards.append(Card(value, suit))
  28.                
  29.     def cards_shuffle(self):
  30.         random.shuffle(self._cards)
  31.  
  32.     def deal_one(self):
  33.         return self._cards.pop(
  34.             random.randrange(1, len(self._cards) - 1)
  35.         )
  36.  
  37. class Player:
  38.     def __init__(self, name, cards_quantity):
  39.         self.name = name
  40.         self.cards_quantity = cards_quantity
  41.         self._cards = []
  42.        
  43.     def set_hand(deck: Deck):
  44.         for c in range(1, self.cards_quantity + 1):
  45.             self._cards.append(deck.deal_one())
  46.    
  47.     def get_card(self):
  48.         return self._cards.pop(
  49.             random.randrange(1, len(self._cards) - 1)
  50.         )
  51.        
  52.     def add_card(self, card: Card):
  53.         self._cards.append(card)
  54.  
  55. class CardGame:
  56.     deck: Deck
  57.     player1: Player
  58.     player2: Player
  59.    
  60.     def __init__(self, player1, player2, cards_quantity):
  61.         self._game_started = False
  62.         cards_quantity_ = cards_quantity if 10 < cards_quantity < 26 else 26
  63.         self.new_game()
  64.        
  65.     def new_game(self):
  66.         if self._game_started:
  67.             raise Exception("Fuck you!")
  68.         self.deck = Deck()
  69.         self.deck.cards_shuffle()
  70.         self.player1 = Player()
  71.         self.player1.set_hand(self.deck)
  72.         self.player2 = Player()
  73.         self.player2.set_hand(self.deck)
  74.        
  75.        
Add Comment
Please, Sign In to add comment