目录
游戏描述:
题目分析与关键点:
代码参考:
游戏描述:
本题限定用以下方法打乱序列中的元素
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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)