π² ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠΊΠ΅Ρ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅: ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΈ ΠΎΠΏΡΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² π
ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠΊΠ΅Ρ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ³ΡΡ ΠΏΠΎΠΊΠ΅Ρ Π½Π° Python ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠ²ΠΎΠΈΡ Π½Π°Π²ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π³ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π½Π°ΡΠ°ΡΡ:
- ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ³ΡΡ: ΠΠ°ΡΠ½ΠΈΡΠ΅ Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» ΠΈΠ³ΡΡ ΠΏΠΎΠΊΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ°ΡΡ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠΈΠ³ΡΡΡΠ½ΡΠΌΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°Π·Π΄Π°ΡΠ° ΠΈ Ρ.Π΄.
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠΎΠ»ΠΎΠ΄Ρ ΠΊΠ°ΡΡ: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ»ΠΎΠ΄Ρ ΠΈΠ· 52 ΠΊΠ°ΡΡ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΊΠ°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΠ»Π° ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΈ.
- Π Π°Π·Π΄Π°ΠΉΡΠ΅ ΠΊΠ°ΡΡΡ ΠΈΠ³ΡΠΎΠΊΠ°ΠΌ: ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π·Π΄Π°ΡΡ ΠΈΠ³ΡΠΎΠΊΠ°ΠΌ ΠΊΠ°ΡΡΡ ΠΈΠ· ΠΊΠΎΠ»ΠΎΠ΄Ρ. Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ³ΡΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°ΡΡ.
- ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ°ΡΡ: ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ°ΡΡ Ρ ΠΈΠ³ΡΠΎΠΊΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ, ΠΊΡΠΎ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠΈΠ³ΡΡΡΠ½ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ.
- ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈΠ³ΡΡ: Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ³ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΠΌΠ΅Π½ ΠΊΠ°ΡΡΠ°ΠΌΠΈ, ΡΡΠ°Π²ΠΊΠΈ ΠΈ Ρ.Π΄. Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ ΠΈΠ³ΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π΄Π΅Π»Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Ρ ΠΎΠ΄Π°.
- ΠΡΠ²ΠΎΠ΄ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ: ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈΠ³ΡΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ³ΡΠΎΠΊΠ° ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ.
ΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π½Π°ΡΠ°Π»Π°:
import random
def create_deck():
suits = ['β ', 'β£', 'β¦', 'β₯']
ranks = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
deck = [(suit, rank) for suit in suits for rank in ranks]
return deck
def deal_cards(deck, num_players, cards_per_player):
random.shuffle(deck)
hands = []
for _ in range(num_players):
hand = []
for _ in range(cards_per_player):
hand.append(deck.pop())
hands.append(hand)
return hands
def evaluate_hand(hand):
# ΠΠΎΠ΄ Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ°ΡΡ Π² ΡΡΠΊΠ΅ ΠΈΠ³ΡΠΎΠΊΠ°
# ...
pass
def play_poker(num_players, cards_per_player):
deck = create_deck()
hands = deal_cards(deck, num_players, cards_per_player)
for i, hand in enumerate(hands):
print(f'ΠΠ³ΡΠΎΠΊ {i+1}: {hand}')
evaluate_hand(hand)
# ...
pass
# ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
play_poker(4, 5)
Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΠΈΠ³ΡΡ. Π£Π΄Π°ΡΠΈ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ΅ΡΠ° Π½Π° Python!
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠΊΠ΅Ρ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅
ΠΠΎΠΊΠ΅Ρ - ΡΡΠΎ ΡΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΊΠ°ΡΡΠΎΡΠ½Π°Ρ ΠΈΠ³ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ, ΡΠ°ΡΡΡΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄Π°ΡΠΈ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΠΎΠΊΠ΅ΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ Python, ΡΠΎ Π²Ρ ΠΏΠΎΠΏΠ°Π»ΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°Π³ΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΠ³ΡΡ ΠΏΠΎΠΊΠ΅Ρ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅.
- ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»
ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΏΠΎΠΊΠ΅ΡΠ° Π½Π° ΠΏΠΈΡΠΎΠ½Π΅ - ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ» ΠΈΠ³ΡΡ. ΠΠΎΠΊΠ΅Ρ - ΡΡΠΎ ΠΈΠ³ΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ 52-ΠΊΠ°ΡΡΠΎΡΠ½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ΄Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ³ΡΠΎΠΊΡ ΡΠ°Π·Π΄Π°ΡΡ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΡΡ. Π¦Π΅Π»Ρ ΠΈΠ³ΡΡ - ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΠ°ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΈΠ»ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ Ρ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ³ΡΠΎΠΊΠΎΠ².
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ°ΡΡ Π±ΡΠ΄ΡΡ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠΈΠ»ΡΠ½ΡΠΌΠΈ ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π½Π³ Π±ΡΠ΄Π΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°Π±ΠΎΡ ΠΈΠ· ΠΏΡΡΠΈ ΠΊΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ»Π΅Ρ, Π° Π½Π°Π±ΠΎΡ ΠΈΠ· ΠΏΡΡΠΈ ΠΊΠ°ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠΈΠ½Π°Π»Π° - ΡΡΡΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
class Card:
def __init__(self, suit, rank):
self.suit = suit
self.rank = rank
class Deck:
def __init__(self):
self.cards = [] # ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΊΠ°ΡΡ
suits = ['Π§Π΅ΡΠ²ΠΈ', 'ΠΡΠ±ΠΈ', 'Π’ΡΠ΅ΡΡ', 'ΠΠΈΠΊΠΈ']
ranks = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'ΠΠ°Π»Π΅Ρ', 'ΠΠ°ΠΌΠ°', 'ΠΠΎΡΠΎΠ»Ρ', 'Π’ΡΠ·']
for suit in suits:
for rank in ranks:
self.cards.append(Card(suit, rank))
deck = Deck()
print(deck.cards) # Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΊΠ°ΡΡ Π² ΠΊΠΎΠ»ΠΎΠ΄Π΅
- Π Π°Π·Π΄Π°ΡΠ° ΠΊΠ°ΡΡ
ΠΠΎΡΠ»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ», Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΡΡΡ ΠΈΠ³ΡΠΎΠΊΠ°ΠΌ. ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ³ΡΠΎΠΊΡ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°ΡΡ ΠΈΠ· ΠΊΠΎΠ»ΠΎΠ΄Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΡ Π² ΠΊΠΎΠ»ΠΎΠ΄Π΅ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½ΠΎΠΉ ΡΠ°Π·Π΄Π°ΡΠΈ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
import random
class Player:
def __init__(self, name):
self.name = name
self.hand = [] # ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ°ΡΡ Π² ΡΡΠΊΠ΅ ΠΈΠ³ΡΠΎΠΊΠ°
def add_card(self, card):
self.hand.append(card)
class Game:
def __init__(self):
self.deck = Deck()
self.players = []
self.create_players()
def create_players(self):
num_players = int(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ³ΡΠΎΠΊΠΎΠ²: "))
for i in range(num_players):
name = input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ ΠΈΠ³ΡΠΎΠΊΠ°: ")
player = Player(name)
self.players.append(player)
def deal_cards(self):
for _ in range(2): # ΡΠ°Π·Π΄Π°ΡΠ° 2 ΠΊΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ³ΡΠΎΠΊΡ
for player in self.players:
card = random.choice(self.deck.cards)
player.add_card(card)
self.deck.cards.remove(card)
game = Game()
game.deal_cards()
for player in game.players:
print(f"ΠΠ°ΡΡΡ {player.name}: {player.hand}")
- ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΡΡΡ ΡΠ°Π·Π΄Π°Π½Ρ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ°ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΡΡΠ°Π²Π»Π΅Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π΅ΡΡΡ Π»ΠΈ Ρ ΠΈΠ³ΡΠΎΠΊΠ° ΡΠ»Π΅Ρ ΠΈΠ»ΠΈ ΡΡΡΠΈΡ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΡΡ ΠΈΠ³ΡΠΎΠΊΠ° ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
class HandEvaluator:
def __init__(self, hand):
self.hand = hand
def is_flush(self):
suits = [card.suit for card in self.hand]
return len(set(suits)) == 1
def is_straight(self):
ranks = [card.rank for card in self.hand]
rank_values = {'2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '10': 10, 'ΠΠ°Π»Π΅Ρ': 11, 'ΠΠ°ΠΌΠ°': 12, 'ΠΠΎΡΠΎΠ»Ρ': 13, 'Π’ΡΠ·': 14}
sorted_ranks = sorted([rank_values[rank] for rank in ranks])
return len(set(sorted_ranks)) == 5 and (sorted_ranks[-1] - sorted_ranks[0] == 4)
player = Player("ΠΠ²Π°Π½")
player.add_card(Card('Π§Π΅ΡΠ²ΠΈ', '10'))
player.add_card(Card('Π§Π΅ΡΠ²ΠΈ', 'ΠΠ°Π»Π΅Ρ'))
player.add_card(Card('Π§Π΅ΡΠ²ΠΈ', 'ΠΠ°ΠΌΠ°'))
player.add_card(Card('Π§Π΅ΡΠ²ΠΈ', 'ΠΠΎΡΠΎΠ»Ρ'))
player.add_card(Card('Π§Π΅ΡΠ²ΠΈ', 'Π’ΡΠ·'))
hand_evaluator = HandEvaluator(player.hand)
print(hand_evaluator.is_flush()) # True, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ ΠΊΠ°ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈ
print(hand_evaluator.is_straight()) # True, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ ΠΊΠ°ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡ ΠΏΠΎΠ΄ΡΡΠ΄
- ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ
Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΠ³ΡΠΎΠΊ Ρ Π½Π°ΠΈΠ»ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ ΠΊΠ°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ ΠΈΠ³ΡΠΎΠΊΠ° Π΅ΡΡΡ ΡΠ»Π΅Ρ, Π° Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΈΠ³ΡΠΎΠΊΠ° Π΅ΡΡΡ ΡΡΡΠΈΡ, ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Π΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΠ³ΡΠΎΠΊ Ρ ΡΠ»Π΅ΡΠ΅ΠΌ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
class GameEvaluator:
def __init__(self, players):
self.players = players
def determine_winner(self):
hand_evaluators = [HandEvaluator(player.hand) for player in self.players]
max_hand_evaluator = max(hand_evaluators, key=lambda hand_evaluator: (hand_evaluator.is_flush(), hand_evaluator.is_straight()))
return self.players[hand_evaluators.index(max_hand_evaluator)]
game_evaluator = GameEvaluator(game.players)
winner = game_evaluator.determine_winner()
print(f"ΠΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ: {winner.name}")
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π³ΠΎΡΠΎΠ²Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈΠ³ΡΡ ΠΏΠΎΠΊΠ΅Ρ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°Π³ΠΎΠ² ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΡΡΠ΅. Π£Π΄Π°ΡΠΈ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΠΊΠ΅ΡΠ°!