Я пытаюсь создать программу, которая позволяет пользователям играть в покер (за фальшивые деньги, не приходите за мной по IRS), и у меня возникла проблема с попыткой определить кикеров на лучшие руки. Поэтому изначально я думал сортировать значения карт (без мастей), которые мне нравятся [14, 12, 10, 8, 6]
(с 14 для туза выше). И сравните его с другим списком, скажем [14, 12, 10, 8, 7]
(7 кикеров), чтобы увидеть, какой рейтинг выше. Каждая рука состоит из одной из 5 комбинаций карт из 7 доступных карт в холдеме. Моей первоначальной мыслью было сделать:
def better_hand_with_kicker(list0, list1):
for index in range(5):
if list0[index] >= list1[index]:
continue
else:
return False
return True
Тем не менее, это не сработает, если любое число будет меньше. Например, между [14, 12, 10, 8, 6]
и [14, 13, 9, 7, 5]
будет возвращено, что [14, 12, 10, 8, 6]
выше, потому что даже если (13> 12) выигрывает в другой руке, третий слот (9 <10) вызовет предложение <code>return False.
Поэтому я подумал о немного более сложном:
def better_hand_with_kicker(list0, list1):
for index in range(5):
if list0[index] == list1[index]:
continue
elif list0[index] > list1[index]:
return True
else:
return False
return True # this would really be a tie
Теперь это работает, но я полагаю, что должно быть гораздо более элегантное решение ...