首页 > 解决方案 > 如何在扑克游戏中选择python中连续数字序列中的最大数字

问题描述

我基本上是在尝试在用 python 编写的扑克游戏中识别顺子。因此,如果是 10 高顺子,我需要一个可以消除 10 以上的牌的功能,比如皇后。我编写了代码来识别一系列数字中的直线,它为直线变量返回 True 值,但我不知道如何在不知道该数字的情况下识别直线的最大数字。因为如果 12 代表皇后:

玩家手牌 = (3, 6, 7, 8, 9, 10, 12)

我使用 sort() 对列表进行排序,但 playerhand[6] 或 max(playershand) 给了我 12,但我想要 10,但不知道 10 在哪里,也不知道我想要 10(因为我想要任何可能的顺子的最高数量???

标签: python

解决方案


您可以用玩家的手创建一个集合,并找到该集合中存在顺子的最高牌(无需排序)。

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

推荐阅读