Как сократить количество сгенерированных карт до 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
<$>
```
Я также хотел бы избежать генерации одинаковых карт. Как мне достичь этого?
Для того чтобы сгенерировать точно 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` на ваш список карт из файла или в другом формате, который вы используете.