Создать раздачу карт без повторений. phyton на replit
Ответы
Код:
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