Предмет: Информатика, автор: muscina4

Создать раздачу карт без повторений. phyton на replit

Ответы

Автор ответа: Mirox921
0

Код:

import random

# Создаем колоду карт

suits = ['Черви', 'Бубны', 'Пики', 'Крести']

ranks = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'Валет', 'Дама', 'Король', 'Туз']

# Рандомно выбираем козырную масть

trump_suit = random.choice(suits)

# Удаляем выбранную масть из списка мастей

suits.remove(trump_suit)

# Создаем колоду карт с учетом козырной масти

deck = [{'rank': rank, 'suit': suit} for rank in ranks for suit in suits]

deck.extend([{'rank': rank, 'suit': trump_suit} for rank in ranks])

# Функция для раздачи 5 карт и возвращения их в виде строки

def deal_cards(deck):

   cards = []

   for _ in range(5):

       if len(deck) == 0:

           break  

       card = random.choice(deck)  

       deck.remove(card)

       cards.append(f"{card['rank']} {card['suit']}")

   return '\n'.join(cards)  #

# Выводим козырную масть

print(f"Козырная масть: {trump_suit}\n")

# Раздаем карты до тех пор, пока колода не закончится

while len(deck) > 0:

   hand = deal_cards(deck)

   if hand:

       print(f"Вы получили карты:\n{hand}\n")

   else:

       print("Колода пуста, больше карт раздавать нельзя.")

Этот код создает колоду из 52 карт, а затем раздает 5 карт до тех пор пока колода не закончится, гарантируя, что каждая карта раздастся только один раз. Можешь изменить количество раздаваемых карт, используя другое значение в цикле range

Похожие вопросы
Предмет: Английский язык, автор: Аноним
Предмет: Алгебра, автор: makumyuk2