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 代码性能优化技巧分享
Aug 07 Python
Python学习小技巧之列表项的拼接
May 20 Python
python3 模拟登录v2ex实例讲解
Jul 13 Python
python通过opencv实现批量剪切图片
Nov 13 Python
python中map的基本用法示例
Sep 10 Python
Python操作json的方法实例分析
Dec 06 Python
python web自制框架之接受url传递过来的参数实例
Dec 17 Python
python读取txt文件,去掉空格计算每行长度的方法
Dec 20 Python
pygame实现俄罗斯方块游戏(基础篇1)
Oct 29 Python
python enumerate内置函数用法总结
Jan 07 Python
Python实现序列化及csv文件读取
Jan 19 Python
Python 中由 yield 实现异步操作
May 04 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
检测png图片是否完整的php代码
2010/09/06 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
动态调用CSS文件的JS代码
2010/07/29 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
jQuery动态添加与删除tr行实例代码
2016/10/18 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
使用python实现滑动验证码功能
2019/08/05 Python
python实现广度优先搜索过程解析
2019/10/19 Python
python实现AdaBoost算法的示例
2020/10/03 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
大专毕业生简历的自我评价
2013/10/20 职场文书
仓库管理专业个人的自我评价
2013/12/30 职场文书
演讲稿开场白
2014/01/13 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
工商行政处罚决定书
2015/06/24 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
JS实现扫雷项目总结
2021/05/19 Javascript
浅谈react useEffect闭包的坑
2021/06/08 Javascript