python小程序之4名牌手洗牌发牌问题解析
本文为大家解析了python实现4名牌手洗牌发牌的问题,供大家参考,具体内容如下
编写程序,4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌。创建函数gen_pocker()交换牌的顺序,函数getColor()获取牌的花色,函数getValue()获取牌的牌面大小,函数getPuk()获取花色和牌面大小的组合
运行效果
[51,45,31,4,48,26,11,2,24,44,22,21,16,41,50,47,13,25,17,29,42,27,19,33,5,40,1,8,30,18,10,9,0,3,14,46,36,35,12,15,20,34,38,39,43,37,32,7,28,23,49,6]
牌手1:方块4方块8方块A方块Q红桃3红桃5红桃J草花6草花A黑桃10黑桃4黑桃5黑桃K
牌手2:方块6方块J方块K红桃10红桃2红桃9红桃A红桃Q草花4黑桃2黑桃3黑桃6黑桃7
牌手3:方块10方块2方块5方块7红桃6红桃7红桃K草花2草花J草花K草花Q黑桃J黑桃Q
牌手4:方块3方块9红桃4红桃8草花10草花3草花5草花7草花8草花9黑桃8黑桃9黑桃A
importrandom
defgen_pocker(n):
random.shuffle(n)
returnn
#产生牌的花色
defgetColor(n):
if(n>=0andn<=12):
return"梅花"
elif(n>=13andn<=25):
return"方块"
elif(n>=26andn<=38):
return"红桃"
elif(n>=39andn<=51):
return"黑桃"
defgetValue(n):
ifn==0orn==13orn==26orn==39:
return'A'
elifn==12orn==38orn==25orn==51:
return'K'
elifn==11orn==37orn==24orn==50:
return'Q'
elifn==10orn==36orn==23orn==49:
return'J'
else:
returnn%13
defgetPuk():
List=[]#代表一副牌,现在表示还没有牌,只是一个牌盒
foriinrange(0,52):
List.append(i)#按顺序往牌盒中放入52张牌
List=gen_pocker(List)#将牌盒中的牌打乱顺序
List1=[]#定义4个牌手
List2=[]
List3=[]
List4=[]
foriinrange(0,52):#实现发牌
ifi<13:#打乱后的前13张牌发给牌手1,实现牌手1手牌中如何含有花色和数字
List1.append(getColor(List[i])+str(getValue(List[i])))
elifi<26:
List2.append(getColor(List[i])+str(getValue(List[i])))
elifi<39:
List3.append(getColor(List[i])+str(getValue(List[i])))
else:
List4.append(getColor(List[i])+str(getValue(List[i])))
print(List)
print("牌手1",List1)
print("牌手2",List2)
print("牌手3",List3)
print("牌手4",List4)
getPuk()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。