目录

游戏描述:

题目分析与关键点:

代码参考:


游戏描述:

本题限定用以下方法打乱序列中的元素
random.shuffle()

几个人用一副扑克牌玩游戏,游戏过程通常有洗牌、发牌、理牌等动作,编写程序模拟游戏过程。

新牌花色顺序为"♠"、"♥"、"♣"、"♦"

花色相同时按2、3、4、5、6、7、8、9、10、J、Q、K、A,最后是小王和大王排序。小王用jokers、大王用JOKERS表示。

按以下要求编写程序:

1.按顺序输出新牌
2.按洗好的顺序输出洗过的牌
3.将牌轮流分给参与游戏的人,按分牌的顺序输出每个人手上的牌
4.对每个人手上的牌升序排序并输出
5.输出时,每张牌间用空格分隔

样例输入:

3

1024

样例输出:
参与游戏的人数:3
新牌顺序
♠2 ♠3 ♠4 ♠5 ♠6 ♠7 ♠8 ♠9 ♠10 ♠J ♠Q ♠K ♠A ♥2 ♥3 ♥4 ♥5 ♥6 ♥7 ♥8 ♥9 ♥10 ♥J ♥Q ♥K ♥A ♣2 ♣3 ♣4 ♣5 ♣6 ♣7 ♣8 ♣9 ♣10 ♣J ♣Q ♣K ♣A ♦2 ♦3 ♦4 ♦5 ♦6 ♦7 ♦8 ♦9 ♦10 ♦J ♦Q ♦K ♦A jokers JOKERS
洗牌顺序
♦6 ♥2 ♣A ♥3 ♦3 ♦J ♥5 ♥10 ♠9 ♥4 ♥8 ♥A ♣10 ♣K ♥6 ♠A ♥7 ♠6 ♣7 ♣Q ♣J ♠2 ♠Q ♦8 ♠K ♠5 ♣5 ♦2 ♦Q ♠4 jokers ♠7 ♥J ♦9 JOKERS ♣3 ♠J ♣2 ♦4 ♦5 ♠10 ♦10 ♦K ♦7 ♥Q ♣8 ♣4 ♠8 ♣9 ♥9 ♥K ♣6 ♠3 ♦A 
每个人手上分到的牌
♦6 ♥3 ♥5 ♥4 ♣10 ♠A ♣7 ♠2 ♠K ♦2 jokers ♦9 ♠J ♦5 ♦K ♣8 ♣9 ♣6 
♥2 ♦3 ♥10 ♥8 ♣K ♥7 ♣Q ♠Q ♠5 ♦Q ♠7 JOKERS ♣2 ♠10 ♦7 ♣4 ♥9 ♠3 
♣A ♦J ♠9 ♥A ♥6 ♠6 ♣J ♦8 ♣5 ♠4 ♥J ♣3 ♦4 ♦10 ♥Q ♠8 ♥K ♦A 
每个人手上排序的牌
♠2 ♠J ♠K ♠A ♥3 ♥4 ♥5 ♣6 ♣7 ♣8 ♣9 ♣10 ♦2 ♦5 ♦6 ♦9 ♦K jokers 
♠3 ♠5 ♠7 ♠10 ♠Q ♥2 ♥7 ♥8 ♥9 ♥10 ♣2 ♣4 ♣Q ♣K ♦3 ♦7 ♦Q JOKERS 
♠4 ♠6 ♠8 ♠9 ♥6 ♥J ♥Q ♥K ♥A ♣3 ♣5 ♣J ♣A ♦4 ♦8 ♦10 ♦J ♦A

题目分析与关键点:

1.若要设置同一个随机打乱情况,需要随机数种子;
2.可建立列表存储花色,将不同花色分开存储,再合并为“牌";
3.如果想不换行输出,在print指令的括号结尾加上:,end=''
4.由于列表中各数据的含义不同,所以无法正常排序,必须有参照条件;
5.一般的列表复制通常会随原表变化而变化,所以可用此语句新建列表内容:lis=list(list4)

更高级的组牌的方法可以采用列表推导式;发牌方法可采用切片。

代码参考:

新建文件保存以下代码,点击Run,便可运行

import random
h=int(input())
n=int(input())
random.seed(n)
list1 = ["2","3","4","5","6","7","8","9","10","J","Q","K","A"]
list2 = ["♠","♥","♣","♦"]
list3 = ["jokers","JOKERS"]
list4 = []
print("参与游戏的人数:",h,sep="")
print("新牌顺序")
for j in range(4):for i in range(13):list4.append(list2[j]+list1[i])
for x in range(52):print(list4[x],'',end='')
print(list3[0],list3[1])
print("洗牌顺序")
list4.append(list3[0])
list4.append(list3[1])
lis=list(list4)
random.shuffle(list4)
for y in range(54):print(list4[y],'',end='')
print()
print("每个人手上分到的牌")
if h == 3:list5 = []list6 = []list7 = []for z in range(18):list5.append(list4[3*z])list6.append(list4[3*z+1])list7.append(list4[3*z+2])for x in range(18):print(list5[x],'',end='')print()for x in range(18):print(list6[x],'',end='')print()for x in range(18):print(list7[x],'',end='')print()elif h == 4:list5 = []list6 = []list7 = []list8 = []for z in range(13):list5.append(list4[4*z])list6.append(list4[4*z+1])list7.append(list4[4*z+2])list8.append(list4[4*z+3])list5.append(list4[52])list6.append(list4[53])for x in range(14):print(list5[x],'',end='')print()for x in range(14):print(list6[x],'',end='')print()for x in range(13):print(list7[x],'',end='')print()for x in range(13):print(list8[x],'',end='')print()list8 = [item for item in lis if item in list8]elif h == 5:list5 = []list6 = []list7 = []list8 = []list9 = []for z in range(10):list5.append(list4[5*z])list6.append(list4[5*z+1])list7.append(list4[5*z+2])list8.append(list4[5*z+3])list9.append(list4[5*z+4])list5.append(list4[50])list6.append(list4[51])list7.append(list4[52])list8.append(list4[53])for x in range(11):print(list5[x],'',end='')print()for x in range(11):print(list6[x],'',end='')print()for x in range(11):print(list7[x],'',end='')print()for x in range(11):print(list8[x],'',end='')print()for x in range(10):print(list9[x],'',end='')print()list8 = [item for item in lis if item in list8]list9 = [item for item in lis if item in list9]elif h == 6:list5 = []list6 = []list7 = []list8 = []list9 = []list10 = []for z in range(9):list5.append(list4[6*z])list6.append(list4[6*z+1])list7.append(list4[6*z+2])list8.append(list4[6*z+3])list9.append(list4[6*z+4])list10.append(list4[6*z+5])for x in range(9):print(list5[x],'',end='')print()for x in range(9):print(list6[x],'',end='')print()for x in range(9):print(list7[x],'',end='')print()for x in range(9):print(list8[x],'',end='')print()for x in range(9):print(list9[x],'',end='')print()for x in range(9):print(list10[x],'',end='')print()list8 = [item for item in lis if item in list8]list9 = [item for item in lis if item in list9]list10 = [item for item in lis if item in list10]print("每个人手上排序的牌")
list5 = [item for item in lis if item in list5]
list6 = [item for item in lis if item in list6]
list7 = [item for item in lis if item in list7]
if h == 3:for x in range(18):print(list5[x],'',end='')print()for x in range(18):print(list6[x],'',end='')print()for x in range(18):print(list7[x],'',end='')print()elif h == 4:for x in range(14):print(list5[x],'',end='')print()for x in range(14):print(list6[x],'',end='')print()for x in range(13):print(list7[x],'',end='')print()for x in range(13):print(list8[x],'',end='')print()elif h == 5:for x in range(11):print(list5[x],'',end='')print()for x in range(11):print(list6[x],'',end='')print()for x in range(11):print(list7[x],'',end='')print()for x in range(11):print(list8[x],'',end='')print()for x in range(10):print(list9[x],'',end='')print()elif h == 6:for x in range(9):print(list5[x],'',end='')print()for x in range(9):print(list6[x],'',end='')print()for x in range(9):print(list7[x],'',end='')print()for x in range(9):print(list8[x],'',end='')print()for x in range(9):print(list9[x],'',end='')print()for x in range(9):print(list10[x],'',end='')print()

Python:列表有趣挑战--斗地主扑克牌发牌相关推荐

  1. python做一副54扑克牌发牌_Python 制作一副扑克牌,有趣的案例!

    如果觉得文章写得不错想要博客文章中的数据,请关注公众号:[Z先生点记],已经为你准备了 50本+ Python 电子书籍 与 200G + 优质视频资料,后台回复关键字:1024 即可获取 之前在 & ...

  2. python做一副54扑克牌发牌_用Python制作4人扑克牌发牌游戏

    扑克牌算是老少皆宜的经典款游戏之一,玩法多样,但万变不离其宗,想要编写扑克牌类游戏,首先得整理清楚发牌的逻辑. 1. 游戏介绍 4名牌手打牌,电脑随机將52张牌(不合大.小王)发给4名牌手,并在屏幕上 ...

  3. python做一副54扑克牌发牌_基于Python制作一副扑克牌过程详解

    整理一下通过本文分享给大家, 该案例是通过 Python 类属性创建一幅除去大王.小王之后的 52 张扑克牌,并实现随机抽牌.排序.洗牌等功能: 创建一个纸牌类 一副扑克除去大王小王之外,剩下的 52 ...

  4. python做一副54扑克牌发牌_python模拟实现分发扑克牌

    本文实例为大家分享了python分发扑克牌的具体代码,供大家参考,具体内容如下 52张扑克牌发个4个玩家,每人13张. 要求: 自动生成一幅扑克牌组:洗牌:发牌到玩家手中:将玩家手中扑克牌按花色大小整 ...

  5. python做一副54扑克牌发牌技巧_德州扑克讲堂:高级技巧 胜率之摊牌胜率的算法...

    行动胜率的算法.行动获胜是德州扑克中唯二的获胜方式,掌握了对手的弃牌率的话,就算手里完全没牌也可以轻松获胜.然而具体打出对手稳定的弃牌则是一种高级技巧.对于初学玩家,推荐掌握好摊牌胜率的算法,稳当地用 ...

  6. python做一副54扑克牌发牌技巧_最强大脑!杭四中高一男生邹全50秒轻松记住一副扑克牌...

    <最强大脑>曾邀请他参加节目 他说,特殊记忆才能完全是练出来的,初二开始每天训练一小时 这两天,杭州第四中学下沙校区的开学典礼被许多同学津津乐道,因为典礼上来了一位"高人&quo ...

  7. Python面向对象编程扑克牌发牌程序,另含大量Python代码!

    1. 题目 编写程序, 4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后, ...

  8. python交互界面实例_Python面向对象编程扑克牌发牌程序,另含大量Python代码!

    1. 题目 编写程序, 4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后, ...

  9. python发牌代码十点半_Python制作扑克牌发牌程序,另含大量Python代码!

    题目 编写程序, 4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌. 提示: 设计出3个类:Card类.Hand类和Poke类. Card类代表一张牌,其中Fac ...

最新文章

  1. 人群距离监测 DeepSOCIAL 最全汉化论文+源码导读
  2. 64位操作系统,openCV4.1.1+VS2019参数配置
  3. 【小白学习C++ 教程】十七、C++ 中的字符数组和字符串常见的函数
  4. JAVA将 带有空格或特殊字符的字符串转换成int数组的方法
  5. 在Linux环境下使用Apache部署ASP.NET Core
  6. 【渝粤教育】国家开放大学2019年春季 1332中文学科论文写作 参考试题
  7. python3列表生成式中的for循环与普通放在外面的for循环细微差异
  8. V8 之旅: 垃圾回收器
  9. javascript 容错处理代码【屏蔽js错误】
  10. expdp的常用用法
  11. Softmax 回归 + 损失函数 + 图片分类数据集 动手学深度学习v2 pytorch
  12. 最新更新云码支付,星糖付多合一全自动码商,商户,代理,支付一体系统完整数据源码
  13. xshell 登陆日志_学习关于xshell查看日志
  14. #榜样的力量#百融云创智能语音防疫公益项目丨数据猿新冠战“疫”公益策划...
  15. Python链接数据库
  16. 路由器网口1一直闪烁正常吗_路由器灯怎么闪才正常
  17. 微信小程序地图如何显示附近厕所WC步行路线
  18. java报500算什么错误_jsp中500是什么错误
  19. Client-Initiated场景下的L2TP实验配置
  20. 【Vue 2.0】用Vue写一个自己的简历网站带作品集

热门文章

  1. 智慧路灯杆助力打造无人智慧码头
  2. 计算机英语听力敎材,计算机多媒体在英语听力教学中的运用
  3. 单片机欠压保护、欠压复位的用法及作用
  4. ggplot2箱式图两两比较_ggplot2 - 箱线图(Box - plot)
  5. 金升阳:研发领跑 以技术推动市场
  6. 融云 CDN 播放器 2.0 版本正式上线
  7. 驱动人生6网卡版 v6.0.15.82 官方版
  8. 怎样计算机连网打印,惠普打印机怎么联网打印?(以436型号为例)
  9. 电动车电池修复器原理图
  10. w3shool学习1-PHP 语法