5 карт подряд в 7-карточном покере с определением списка - PullRequest
1 голос
/ 27 сентября 2019

Я программирую 7-карточный скрипт для изучения покерных рук в учебных целях.В настоящее время программируем прямое обнаружение.

Хотя я уже нашел рабочее решение, оно не очень «питоническое», потому что оно проверяет, есть ли у него прямая A-5, но в другом утверждении оно проверяет остальную частьнатуралы.Хромой.

Я создал список возможных стритов:

#  01 = Deuce, 13 = Ace
STRAIGHTS = [sorted([13, *range(1,14)][n:n+5]) for n in range(0,10)]

Это включает в себя надоедливый стрит A-5.

Теперь, что я пытаюсь сделатьПересечь мою руку с этими списками и посмотреть, если длина этого пересечения больше, чем 5.

Если я сделаю это:

if len([item for item in hand if item in [13,1,2,3,4]) >= 5

Это работает как шарм.Но если я щелкну список STRAIGHTS в жестко закодированном списке, это не сработает.Почему это так?

if len([item for item in hand if item in STRAIGHTS) >= 5

else: Это мой первый опубликованный вопрос, поэтому чувствую себя комфортно, давая мне обратную связь, если я был достаточно ясен и т. Д.

1 Ответ

0 голосов
/ 27 сентября 2019

Я предполагаю, что ваш hand это также список целых чисел

if max([len(set(hand).intersection(set(s))) for s in STRAIGHTS]) >=5
...