python小程序之4名牌手洗牌发牌问题解析

 更新时间:2020年05月15日 16:09:57   作者:fbvukn  
这篇文章主要为大家详细介绍了python小程序之4名牌手洗牌发牌问题,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文为大家解析了python实现4名牌手洗牌发牌的问题,供大家参考,具体内容如下

编写程序, 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线程详解

    Python线程详解

    这篇文章主要介绍了Python线程详解,本文详细讲解了线程方方面面的知识,如线程基础知识线程状态、线程同步(锁)、线程通信(条件变量)等内容,需要的朋友可以参考下
    2015-06-06
  • Python爬取股票交易数据并可视化展示

    Python爬取股票交易数据并可视化展示

    抛开炒股技术不说, 那么多股票数据是不是非常难找,找到之后是不是看着密密麻麻的数据是不是头都大了?今天带大家爬取雪球平台的股票数据并将其可视化
    2021-12-12
  • 基于Python绘制一个会动的3D立体粽子

    基于Python绘制一个会动的3D立体粽子

    下周就要到端午节了,所以本文小编就来和大家分享一个有趣的Python项目——绘制会动的3D立体粽子,文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-06-06
  • OpenCV实战之OpenCV中的颜色空间

    OpenCV实战之OpenCV中的颜色空间

    这篇文章主要介绍了OpenCV实战之OpenCV中的颜色空间,解计算机视觉中常用的色彩空间,并将其用于基于颜色分割。我们还将用C ++和Python共享演示代码,下文详细内容需要的小伙伴可以参考一下
    2022-04-04
  • python内存占用过多问题以及其解决方案

    python内存占用过多问题以及其解决方案

    Python是一种高级编程语言,被广泛应用于各种领域,包括网站开发、数据分析、人工智能等,这篇文章主要给大家介绍了关于python内存占用过多问题以及其解决方案的相关资料,需要的朋友可以参考下
    2024-08-08
  • Python中变量的输入输出实例代码详解

    Python中变量的输入输出实例代码详解

    这篇文章主要介绍了Python中变量的输入输出问题,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07
  • 使用Python解决序列重叠问题

    使用Python解决序列重叠问题

    这篇文章主要为大家详细介绍了如何使用Python解决序列重叠问题,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • Python按照某列内容对两个DataFrame进行合并操作方法

    Python按照某列内容对两个DataFrame进行合并操作方法

    这篇文章主要给大家介绍了关于Python按照某列内容对两个DataFrame进行合并操作的相关资料,文中通过代码示例介绍的非常详细,对大家学习或者使用Python具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • pytorch加载训练好的模型用来测试或者处理方式

    pytorch加载训练好的模型用来测试或者处理方式

    这篇文章主要介绍了pytorch加载训练好的模型用来测试或者处理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • python提取页面内url列表的方法

    python提取页面内url列表的方法

    这篇文章主要介绍了python提取页面内url列表的方法,涉及Python操作页面元素的相关技巧,需要的朋友可以参考下
    2015-05-05

最新评论