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


Posted in Python onMay 15, 2020

本文为大家解析了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生成文件md5校验值函数的方法
Jan 10 Python
Python使用matplotlib绘制三维图形示例
Aug 25 Python
使用Python实现租车计费系统的两种方法
Sep 29 Python
python实现二维插值的三维显示
Dec 17 Python
Django REST framework视图的用法
Jan 16 Python
简单了解python的一些位运算技巧
Jul 13 Python
Python queue队列原理与应用案例分析
Sep 27 Python
解决django后台管理界面添加中文内容乱码问题
Nov 15 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
Python configparser模块配置文件过程解析
Mar 03 Python
Python实现仿射密码的思路详解
Apr 23 Python
利用PyTorch实现VGG16教程
Jun 24 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 #Python
使用Python实现将多表分批次从数据库导出到Excel
May 15 #Python
解决python执行较大excel文件openpyxl慢问题
May 15 #Python
python可迭代对象去重实例
May 15 #Python
python 操作mysql数据中fetchone()和fetchall()方式
May 15 #Python
Python实现UDP程序通信过程图解
May 15 #Python
解决pymysql cursor.fetchall() 获取不到数据的问题
May 15 #Python
You might like
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
php强制下载文件函数
2016/08/24 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
2017/02/17 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
node.js基础知识汇总
2020/08/25 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
Python实现partial改变方法默认参数
2014/08/18 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
django使用channels实现通信的示例
2020/10/19 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
C语言变量的命名规则都有哪些
2013/12/27 面试题
大型车展策划方案
2014/02/01 职场文书
安全生产大检查方案
2014/05/07 职场文书
企业宣传口号
2014/06/12 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
推荐信范文大全
2015/03/27 职场文书
初中同学会致辞
2015/08/01 职场文书
团委副书记工作总结
2015/08/14 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
初一语文教学反思
2016/03/03 职场文书
Python 多线程之threading 模块的使用
2021/04/14 Python
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python