IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python:列表有趣挑战--斗地主扑克牌发牌 -> 正文阅读

[Python知识库]Python:列表有趣挑战--斗地主扑克牌发牌

目录

游戏描述:

题目分析与关键点:

代码参考:


游戏描述:

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

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

新牌花色顺序为"?"、"?"、"?"、"?"

花色相同时按2、3、4、5、6、78、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,便可运行

#为满足挑战性,只展示了3人参与的代码

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 = []
    list8 = [item for item in lis if item in list8]

elif h == 5:
    list5 = []
    list6 = []
    list7 = []
    list8 = []
    list9 = []
    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 = []
    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]
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()

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:20:55  更:2022-04-01 23:22:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:08:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码