Python实现4人扑克牌随机发牌与显示逻辑详解

花开有时
花开有时
发布时间:2026-10-13 | 4人浏览过
原创

本文通过Python代码演示了52张扑克牌(不含大小王)随机分发给4名玩家的全过程。核心逻辑包括使用random模块洗牌,通过数值区间判断花色,利用取模运算转换牌面大小(A/K/Q/J/数字),最终将52张牌均分并格式化输出每位玩家的手牌详情及原始索引列表。

Python扑克牌发牌程序概述

本文通过具体案例解析如何使用Python实现4名牌手之间的洗牌与发牌逻辑,供读者参考学习。

核心功能与函数定义

程序需实现计算机随机将52张牌(不含大小鬼)分发给4名牌手,并在屏幕显示每位牌手的手牌。核心功能包括:创建gen_pocker()函数用于交换牌的顺序,getColor()函数用于获取牌的花色,getValue()函数用于获取牌的牌面大小,以及getPuk()函数用于组合花色与牌面大小并执行发牌流程。

程序运行后的输出效果如下所示。

随机生成的牌索引列表:[51, 45, 31, 4, 48, 26, 11, 2, 24, 44, 22, 21, 16, 41, 50, 47, 13, 25, 17, 29, 42, 27, 19, 33, 5, 40, 1, 8, 30, 18, 10, 9, 0, 3, 14, 46, 36, 35, 12, 15, 20, 34, 38, 39, 43, 37, 32, 7, 28, 23, 49, 6]

牌手1的手牌:方块4、方块8、方块A、方块Q、红桃3、红桃5、红桃J、草花6、草花A、黑桃10、黑桃4、黑桃5、黑桃K

牌手2的手牌:方块6、方块J、方块K、红桃10、红桃2、红桃9、红桃A、红桃Q、草花4、黑桃2、黑桃3、黑桃6、黑桃7

牌手3的手牌:方块10、方块2、方块5、方块7、红桃6、红桃7、红桃K、草花2、草花J、草花K、草花Q、黑桃J、黑桃Q

牌手4的手牌:方块3、方块9、红桃4、红桃8、草花10、草花3、草花5、草花7、草花8、草花9、黑桃8、黑桃9、黑桃A

代码实现与运行结果


import random
def gen_pocker(n):
  random.shuffle(n)
  return n
#产生牌的花色
def getColor(n):
  if(n>=0 and n<=12):
    return "梅花"
  elif(n>=13 and n<=25):
    return "方块"
  elif(n>=26 and n<=38):
    return "红桃"
  elif(n>=39 and n<=51):
    return "黑桃"
def getValue(n):
  if n==0 or n==13 or n==26 or n==39:
    return 'A'
  elif n==12 or n==38 or n==25 or n==51:
    return 'K'
  elif n==11 or n==37 or n==24 or n==50:
    return 'Q'
  elif n==10 or n==36 or n==23 or n==49:
    return 'J'
  else:
    return n%13
def getPuk():
  List=[]    #代表一副牌,现在表示还没有牌,只是一个牌盒
  for i in range(0,52):
    List.append(i)  #按顺序往牌盒中放入52张牌
  List=gen_pocker(List)  #将牌盒中的牌打乱顺序
  List1=[]       #定义4个牌手
  List2=[]    
  List3=[]
  List4=[]
  for i in range(0,52): #实现发牌
    if i<13:    #打乱后的前13张牌发给牌手1,实现牌手1手牌中如何含有花色和数字
      List1.append(getColor(List[i])+str(getValue(List[i])))
    elif i<26:
      List2.append(getColor(List[i])+str(getValue(List[i])))
    elif i<39:
      List3.append(getColor(List[i])+str(getValue(List[i])))
    else:
      List4.append(getColor(List[i])+str(getValue(List[i])))
  print(List)
  print("牌手1",List1)
  print("牌手2",List2)
  print("牌手3",List3)
  print("牌手4",List4)
getPuk()

以上即为Python实现4人扑克牌随机发牌的完整内容,希望能为读者的编程学习提供有益帮助,欢迎继续支持本站获取更多内容。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表