You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python开发扑克游戏时如何获取顺子序列的最大数值

Python扑克游戏顺子最大值获取方法

实现逻辑

因为你已经完成了顺子存在性的判定,只需要从去重排序后的手牌倒序查找第一个符合连续5张数值递增1的序列,末尾值即为该顺子的最大数值,会自动跳过不属于顺子的大数值牌。

代码实现

def get_straight_max(hand):
    # 对手牌去重后升序排序
    sorted_unique = sorted(set(hand))
    # 从最大的牌开始倒序查找符合条件的顺子
    for i in range(len(sorted_unique) - 1, 3, -1):
        # 连续5张牌的首尾差为4即说明是顺子
        if sorted_unique[i] - sorted_unique[i - 4] == 4:
            return sorted_unique[i]
    # 可选:兼容A(数值14)当1的特殊顺子A-2-3-4-5,最大值计为5
    if set(sorted_unique) >= {14, 2, 3, 4, 5}:
        return 5

效果测试

以你给出的手牌为例:

playershand = (3, 6, 7, 8, 9, 10, 12)
print(get_straight_max(playershand))

运行后输出为10,符合需求。

逻辑说明

  • 去重操作是为了避免同数值多牌干扰连续序列判定
  • 倒序查找保证优先取到数值最大的顺子,自动过滤不属于顺子的大数值牌(比如示例中的12)
  • 可选兼容逻辑适配扑克规则中A可作低牌使用的场景,不需要可直接删除

内容的提问来源于stack exchange,提问作者CompleteNewb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:06:03