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

如何将洗牌发牌Python代码与原扑克牌生成代码整合?

扑克牌组生成与洗牌发牌整合方案

需求说明

整合两段代码:先通过原二维列表逻辑生成并输出完整牌组,再基于该牌组洗牌,分发2手各5张牌,避免重复构建牌组数据。

整合后的完整代码

import random

# 原牌组生成逻辑
dCardNames = ['2','3','4','5','6','7','8','9','10','J','Q','K','A']
dCardValues = ['2','3','4','5','6','7','8','9','10','11','12','13','14']
dSuits = ["Clubs","Spades","Diamonds","Hearts"]

# 构建二维列表存储牌组
aCards =  [['' for i in range(52)] for j in range(3)]
i = 0
while i < 13:
    aCards[0][i] = dCardNames[i]
    aCards[0][i + 13] = dCardNames[i]
    aCards[0][i + 26] = dCardNames[i]
    aCards[0][i + 39] = dCardNames[i]

    aCards[1][i] = dSuits[0]
    aCards[1][i + 13] = dSuits[1]
    aCards[1][i + 26] = dSuits[2]
    aCards[1][i + 39] = dSuits[3]
    
    aCards[2][i] = dCardValues[i]
    aCards[2][i + 13] = dCardValues[i]
    aCards[2][i + 26] = dCardValues[i]
    aCards[2][i + 39] = dCardValues[i]
    
    i += 1 

# 输出原完整牌组
print("原完整牌组:")
i = 0
while i < 52:
    print(f"{aCards[0][i]}   {aCards[1][i]}   {aCards[2][i]}")
    i += 1

# 从原二维列表转换为元组列表,方便洗牌和处理
# 每个元素是(牌名, 花色, 数值)
deck = [(aCards[0][idx], aCards[1][idx], aCards[2][idx]) for idx in range(52)]

# 洗牌
random.shuffle(deck)

# 分发2手各5张牌
hands_amt = 2
cards_per_hand = 5
hands = {}

for hand_num in range(1, hands_amt + 1):
    hands[hand_num] = deck[:cards_per_hand]
    deck = deck[cards_per_hand:]

# 格式化输出手牌
print("\n# 随机分发的手牌:")
for hand_num, cards in hands.items():
    print(f"Hand {hand_num}:")
    for card in cards:
        print(f"{card[1]} {card[0]}")
    print()

关键整合点

  • 复用原牌组数据:通过列表推导式将原二维列表aCards转换为元组列表deck,每个元组存储单张牌的完整信息,无需重新构建牌组。
  • 高效洗牌:使用random.shuffle()直接打乱牌组,比随机选择再删除的方式更高效、稳定。
  • 格式化输出:替换原字典打印方式,按照预期排版输出手牌,结果更易读。

输出示例(部分)

原完整牌组:
2   Clubs   2
3   Clubs   3
...
A   Hearts   14

# 随机分发的手牌:
Hand 1:
Hearts K
Diamonds 9
Hearts 6
Hearts 5
Clubs 9

Hand 2:
Spades Q
Diamonds A
Clubs 3
Hearts 2
Diamonds 4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:50:45