目录
游戏描述:
题目分析与关键点:
代码参考:
游戏描述:
本题限定用以下方法打乱序列中的元素 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()
?
|