python - 如何在扑克游戏中选择python中连续数字序列中的最大数字
问题描述
我基本上是在尝试在用 python 编写的扑克游戏中识别顺子。因此,如果是 10 高顺子,我需要一个可以消除 10 以上的牌的功能,比如皇后。我编写了代码来识别一系列数字中的直线,它为直线变量返回 True 值,但我不知道如何在不知道该数字的情况下识别直线的最大数字。因为如果 12 代表皇后:
玩家手牌 = (3, 6, 7, 8, 9, 10, 12)
我使用 sort() 对列表进行排序,但 playerhand[6] 或 max(playershand) 给了我 12,但我想要 10,但不知道 10 在哪里,也不知道我想要 10(因为我想要任何可能的顺子的最高数量???
解决方案
您可以用玩家的手创建一个集合,并找到该集合中存在顺子的最高牌(无需排序)。
playersHand = (3, 6, 7, 8, 9, 10, 12)
handSet = set(playersHand)
maxStraight = max(handSet.issuperset(range(n,n+5))*(n+4) for n in handSet)
print(maxStraight) # 10