第一次写洗牌代码,代码很多复用了
#-*- coding:cp936 -*-
import random,time
import threading
mylock=threading.RLock()
huase=['黑桃','红杏','梅花','方块']
species=['3','4','5','6','7','8','9','10','J','Q','K','A','2']
lidandan=[]
zhangqi=[]
fanfan=[]
li=[]
zh=[]
fa=[]
pai=[i for i in range(54)]
dizhu=random.randint(0,2)
num=53
class puke(threading.Thread):
def __init__(self,name):
threading.Thread.__init__(self)
self.name=name
self.list=[]
def run(self):
global lidandan,zhangqi,fanfan,dizhu,num
while len(self.list)<17:
mylock.acquire()
random.shuffle(pai) #每次打乱顺序,增加随机性
rd=random.randint(0,num)
self.list.append(pai[rd])
pai.remove(pai[rd])
num=num-1
mylock.release()
if self.name=='lidandan':
lidandan=self.list
elif self.name=='zhangqi':
zhangqi=self.list
elif self.name=='fanfan':
fanfan=self.list
#def printpai():
#for i in self.list:
#print (i),
#print
def dizhuadd():
global lidandan,zhangqi,fanfan,dizhu
if dizhu==0:
banbie=int(input("lidandan 你要地主吗?要请输入1,不要请输入0\n"))
if(banbie==1):
for item in pai:
lidandan.append(item)
pai.clear()
return
banbie=int(input("zhangqi 你要地主吗?要请输入1,不要请输入0\n"))
if(banbie==1):
for item in pai:
zhangqi.append(item)
pai.clear()
return
banbie=int(input("fanfan 你要地主吗?要请输入1,不要请输入0\n"))
if(banbie==1):
for item in pai:
fanfan.append(item)
pai.clear()
return
print("没人叫地主,重新开始!\n")
if dizhu==1:
#lidandan=self.list
banbie=int(input("zhangqi 你要地主吗?要请输入1,不要请输入0\n"))
if(banbie==1):
for item in pai:
zhangqi.append(item)
pai.clear()
return
banbie=int(input("fanfan 你要地主吗?要请输入1,不要请输入0\n"))
if(banbie==1):
for item in pai:
fanfan.append(item)
pai.clear()
return
banbie=int(input("lidandan 你要地主吗?要请输入1,不要请输入0\n"))
if(banbie==1):
for item in pai:
lidandan.append(item)
pai.clear()
return
print("没人叫地主,重新开始!\n")
if dizhu==2:
#lidandan=self.list
banbie=int(input("fanfan 你要地主吗?要请输入1,不要请输入0\n"))
if(banbie==1):
for item in pai:
fanfan.append(item)
pai.clear()
return
banbie=int(input("lidandan 你要地主吗?要请输入1,不要请输入0\n"))
if(banbie==1):
for item in pai:
lidandan.append(item)
pai.clear()
return
banbie=int(input("zhangqi 你要地主吗?要请输入1,不要请输入0\n"))
if(banbie==1):
for item in pai:
zhangqi.append(item)
pai.clear()
return
print("没人叫地主,重新开始!\n")
def zhuanhua(i):
global huase,species
if i==52:
return('小王')
if i==53:
return('大王')
key=int(i/13)
value=i%13
return (huase[key]+species[value])
def cunpai():
global li,zh,fa
for i in lidandan:
li.append(zhuanhua(i))
for i in zhangqi:
zh.append(zhuanhua(i))
for i in fanfan:
fa.append(zhuanhua(i))
def printpai():
print('lidandan:')
for i in li:
print (i,end=' ')
print()
print()
print('zhangqi:')
for i in zh:
print(i,end=' ')
print()
print()
print('fanfan:')
for i in fa:
print(i,end=' ')
print()
print()
A=puke('lidandan')
B=puke('zhangqi')
C=puke('fanfan')
A.start()
B.start()
C.start()
cunpai()
printpai()
dizhuadd()
cunpai()
printpai()