Простая команда print
показывает, что вы перегрузили свою переменную count
: вы пытаетесь использовать ее в качестве кортежа количества карт и подсчета того, сколько раз вы 'Встретил 2 пары.Вам нужны две отдельные переменные для двух одновременных концепций.
Я исправил пару других проблем с кодом:
import random
from collections import Counter
pair_count = 0
while True:
cards = []
for i in range(5):
cards.append(random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]))
stop = False
counted_cards = Counter(cards)
two_most_common, count = zip(*counted_cards.most_common(2))
print(two_most_common, count)
count_to_message = {
(1, 1): "Nothing",
(2, 1): "One Pair",
(3, 1): "Three of a Kind",
(4, 1): "Four of a Kind",
(5, 1): "Five of a Kind",
(2, 2): "Two Pairs",
(3, 2): "Full House",
}
msg = count_to_message[count]
print(msg)
if msg == "Two Pairs":
break
pair_count+=1
print('Count is', 1/pair_count)
Вывод:
(4, 6) (1, 1)
Nothing
(5, 9) (1, 1)
Nothing
(7, 8) (2, 1)
One Pair
(10, 11) (2, 1)
One Pair
(12, 6) (2, 1)
One Pair
(7, 13) (2, 1)
One Pair
(11, 4) (1, 1)
Nothing
(13, 7) (2, 1)
One Pair
(2, 1) (1, 1)
Nothing
(12, 13) (2, 2)
Two Pairs
Count is 0.1111111111111111
У вас все еще естьпара проблем, особенно в том, что не точный показатель вероятности получения двух пар.