Как создать скрипт, который будет генерировать семь карт?

Как сократить количество сгенерированных карт до 7 вместо 982 в телеграмм боте для игры в карты и избежать дубликатов? Вот мой код на данный момент: 

```python
def card(message):
   with open("test.txt", encoding='utf-8') as text_file:
      for line in text_file:
         if "<$>" not in line:
            if line != None:
               a = line.replace('\n', '')
               with open(f"{a}.txt", "a", encoding='utf-8') as user:
                  while len(open(f'{a}.txt').readlines()) < 6:
                     r = random.choice(cards)
                     user.write(r + '\n')
```

Имеется текстовый файл test.txt: 

```
Ник игрока 1
<$>
```

Я также хотел бы избежать генерации одинаковых карт. Как мне достичь этого?
  • 23 февраля 2024 г. 13:28
Ответы на вопрос 1
Для того чтобы сгенерировать точно 7 карт и избежать дубликатов, вы можете воспользоваться следующим кодом:

```python
import random

def generate_cards(num_of_cards):
    cards = []
    while len(cards) < num_of_cards:
        card = random.choice(deck)
        if card not in cards:
            cards.append(card)
    return cards

# Список всех доступных карт
deck = ['Карта 1', 'Карта 2', 'Карта 3', 'Карта 4', 'Карта 5', 'Карта 6', 'Карта 7', 'Карта 8', 'Карта 9', 'Карта 10']

# Генерация 7 уникальных карт
hand = generate_cards(7)

# Вывод сгенерированных карт
for card in hand:
    print(card)
```

Этот код генерирует 7 уникальных карт из списка всех доступных карт и избегает создания дубликатов. Вам нужно просто заменить список `deck` на ваш список карт из файла или в другом формате, который вы используете.
Похожие вопросы