编写程序实现:10人抽取随机给定的一副有200张 牌的扑克牌,若第一人没有抽到大王,则继续让下一 人抽,如果所有人都没有抽到,则输出“没有出现大 王”,如果有人抽到,则其余人员不再继续抽取,并 输出“游戏结束”
import random
puke = ['A',2,3,4,5,6,7,8,9,10,'J','Q','K','小王','大王']
pukes = []
flag = 1
while flag <= 200:
pk = random.choice(puke)
pukes.append(pk)
flag += 1
print(f"200张扑克牌是:{pukes}\n")
players = ['A','B','C','D']
pks_play_a = []
pks_play_b = []
pks_play_c = []
pks_play_d = []
while pukes:
pk_play_a = pukes.pop(0)
pks_play_a.append(pk_play_a)
if pk_play_a == '大王':
print("游戏结束,玩家A抽到大王!")
break
pk_play_b = pukes.pop(0)
pks_play_b.append(pk_play_b)
if pk_play_b == '大王':
print("游戏结束,玩家B抽到大王!")
break
pk_play_c = pukes.pop(0)
pks_play_c.append(pk_play_c)
if pk_play_c == '大王':
print("游戏结束,玩家C抽到大王!")
break
pk_play_d = pukes.pop(0)
pks_play_d.append(pk_play_d)
if pk_play_d == '大王':
print("游戏结束,玩家D抽到大王!")
break
if pukes == []:
print("没有出现大王")
print(f"A玩家抽到的扑克牌是:{pks_play_a}\n")
print(f"B玩家抽到的扑克牌是:{pks_play_b}\n")
print(f"C玩家抽到的扑克牌是:{pks_play_c}\n")
print(f"D玩家抽到的扑克牌是:{pks_play_d}\n")
P 表示一副扑克的列表,其中Rj, Bj分别表示大、小王
from random import shuffle,sample
P = [f+v for f in ('♠','♥','♣','♦') for v in ([str(i) for i in range(2,10)]+list('TJQKA'))]+['Rj','Bj']
P = sample(6*P,200) #6副扑克中随机挑200张,扑克副数6是可以随便修改的,只要54张乘以扑克副数大于200
count = 0
while len(P)>0:
shuffle(P) #每次抽牌都用shuffle()函数扑克打乱顺序,即可以用抽最后一张来代替在整副牌里随机抽取
count += 1
c = P.pop()
print(c, end='\t' if count%10!=0 and c!='Rj' else '\n')
if c=='Rj':
print(f'第{count%10 if count%10 else 10}个人在第{count//10+(1 if count%10 else 0)}轮抽到了大王。')
print('游戏结束!')
break
else:
print('200张牌中没有出现大王!')
以下是随便运行几次的结果:
====================================== RESTART: D:\test.py ======================================
♣6 ♣5 ♣K ♠Q Bj ♣8 ♠T ♣4 ♦5 ♣5
♣Q ♥2 ♣9 ♠T ♦3 ♠8 ♦4 ♣6 ♠A ♥K
♣7 ♠T ♠5 ♠T ♥9 ♠6 ♣3 ♠3 ♥8 ♦T
♥K ♦7 ♦6 ♠J ♣3 ♦5 ♥A ♣5 ♦J ♠9
♥A ♣A ♣K ♥Q ♥K ♣T ♦K Bj ♣J ♠4
♣8 ♥T ♦J ♣8 ♣A ♣A ♦9 ♥3 Rj
第9个人在第6轮抽到了大王。
游戏结束!
====================================== RESTART: D:\test.py ======================================
♣7 ♥4 ♥2 ♥9 ♦Q ♥6 ♦3 ♠K ♥3 ♦J
♥K ♠9 ♥7 ♦3 ♠A ♥2 ♥J ♥T ♠Q ♥7
♠7 ♥5 ♦4 ♦Q ♥K ♦5 ♣7 ♥4 ♥A ♥T
♦K ♦6 ♠2 Bj Bj ♦2 ♦9 ♣J ♣J ♠8
♠J ♦5 ♠T ♥9 Rj
第5个人在第5轮抽到了大王。
游戏结束!
====================================== RESTART: D:\test.py ======================================
♦6 ♥2 ♦9 ♥A ♣8 ♣4 ♣5 ♥Q ♠2 ♥A
♥Q ♥8 ♥5 ♦5 ♦4 ♣J ♠3 ♥A ♠5 ♦K
♠J ♣4 ♣Q ♠Q ♦J ♥T ♣5 ♦A ♣A ♠2
♣9 ♠Q ♣9 ♦8 ♠K Rj
第6个人在第4轮抽到了大王。
游戏结束!
====================================== RESTART: D:\test.py ======================================
♠6 ♥5 Rj
第3个人在第1轮抽到了大王。
游戏结束!
====================================== RESTART: D:\test.py ======================================
♦K ♠8 ♦5 ♣Q ♥A ♥4 ♥8 ♠2 ♦K ♦J
♥4 ♥6 Bj ♦8 ♦J ♠2 ♣8 ♦2 ♥J ♠2
♠A ♦9 ♦Q ♣T ♣7 ♦6 ♦3 ♥2 ♦8 ♦2
♠J Bj ♦4 ♣J ♦T ♦Q ♣2 ♣3 ♥8 ♠J
♣6 ♦T ♠T ♣K ♣4 ♣A ♣8 ♥9 Bj ♣K
♥6 ♦7 ♦8 ♥J ♥Q ♥7 ♠4 ♣3 ♦J ♦A
♣6 ♥4 ♣8 ♦2 ♠8 ♦6 ♥A ♥8 ♠K ♠9
♠J ♥K ♦A ♥Q Rj
第5个人在第8轮抽到了大王。
游戏结束!
====================================== RESTART: D:\test.py ======================================
♦3 ♠6 ♣5 ♥T ♠Q ♣T ♠T ♦3 ♣6 ♦T
♥K ♣Q ♥J ♠3 Bj ♥9 ♠6 ♣T ♦2 ♥6
♥6 ♠Q ♣T ♥8 ♣8 ♦7 ♥3 ♠3 ♣K ♥2
♠Q Bj ♣J ♥Q ♣A ♠A ♠8 ♥A ♦5 ♣4
♠8 ♠5 ♣6 ♣8 ♦4 ♦2 ♣A ♠4 ♣7 ♠T
♠2 ♦Q ♥5 ♦7 ♦4 ♣6 ♥5 ♠9 ♦6 ♥A
♥J ♣5 ♦2 ♥9 ♦9 ♠9 ♦7 ♦T ♣K ♦T
♠A ♣7 ♠K ♦J ♠4 ♠K ♣K ♣K ♣5 ♠9
♦8 ♦J ♦4 ♥3 ♠A ♠9 ♠2 ♦A ♥4 ♦4
♥T ♣4 ♣8 ♦A ♥8 ♣J ♦6 ♣3 ♦K ♥4
♦3 ♥K ♦3 ♥9 ♠T ♥A ♦J ♥4 ♦5 ♣7
♣7 ♣4 ♦T ♦6 ♣3 ♦J ♠7 ♣3 ♦8 ♥3
♥9 ♠J ♠7 ♠4 ♦2 ♦A ♣4 ♣6 ♥6 ♥7
♦K ♠Q ♥K Bj ♦K ♣T ♦8 ♦T ♦9 ♣J
♦2 ♣2 ♣3 Bj ♣Q ♣2 ♣Q ♠4 ♦3 ♣7
♠9 ♦K ♠4 ♠A ♦J ♥2 ♠8 ♥A ♥9 ♠K
♥5 ♥A ♠5 ♠3 ♣3 ♦Q ♥7 ♦6 ♠5 ♠9
♥J ♠J ♥5 ♥6 ♣2 ♣2 ♣Q ♦9 ♠7 ♥7
♣4 ♥5 ♦9 ♠K ♠8 ♠J ♦5 ♣4 ♠3 ♣9
♣K ♣A ♥4 ♥6 ♠T ♥8 ♥T ♦A ♠J ♦K
200张牌中没有出现大王!
====================================== RESTART: D:\test.py ======================================
♠4 ♦3 ♣K ♦A ♣3 ♦T ♠2 ♣T ♦K ♦7
♥K ♣A ♦A ♦T ♣J ♠3 ♦T ♠Q ♣8 Rj
第10个人在第2轮抽到了大王。
游戏结束!