发牌游戏值得一学,基于python的tkinter模块
1.4 自己选择的路,跪着也要把它走完。
发牌游戏,主要是用52数字来完成洗牌,在乱牌中分发给4个牌手,最后在图形界面显示出来。
具体的步骤我在代码给大家注释
from tkinter import *
import random
n=52
def gen_pocker(n):#打乱,相当于洗牌程序
x=100
while(x>0):
x=x-1
p1=random.randint(0,n-1)
p2=random.randint(0,n-1)
t=pocker[p1]
pocker[p1]=pocker[p2]
pocker[p2]=t
return pocker
pocker=[i for i in range(n)]
pocker=gen_pocker(n)
print(pocker)
#创建player和p列表来存放图和数
(player1,player2,player3,player4)=([],[],[],[])
(p1,p2,p3,p4)=([],[],[],[])
root=Tk()#创建图形来展示各个选手的牌
cv=Canvas(root,bg="white",width=900,height=800)
imgs=[]
for j in range(1,14):#将52张牌图片导入到imgs中
imgs.insert(j-1,PhotoImage(file="C:\\Users\\Administrator\\Desktop\\扑克牌图片\\Heart\\"+str(j)+".png"))
imgs.insert(13+j-1, PhotoImage(file="C:\\Users\\Administrator\Desktop\\扑克牌图片\\Club\\" + str(j) + ".png"))
imgs.insert(26+j - 1, PhotoImage(file="C:\\Users\\Administrator\\Desktop\\扑克牌图片\\Diamond\\" + str(j) + ".png"))
imgs.insert(39+j - 1, PhotoImage(file="C:\\Users\\Administrator\\Desktop\\扑克牌图片\\Spade\\" + str(j) + ".png"))
for x in range(13):#洗完牌按轮流顺序发牌
m=x*4
p1.append(pocker[m])
p2.append(pocker[m+1])
p3.append(pocker[m+2])
p4.append(pocker[m+3])
p1.sort()
p2.sort()
p3.sort()
p4.sort()
for x in range(13):
img=imgs[p1[x]]
player1.append(cv.create_image((250+30*x,110),image=img))
img=imgs[p2[x]]
player2.append(cv.create_image((100,150+30*x),image=img))
img = imgs[p3[x]]
player3.append(cv.create_image((250 + 30 * x,600), image=img))
img = imgs[p4[x]]
player4.append(cv.create_image((770, 150 + 30 * x), image=img))
print("player1:",player1)
print("player2:",player2)
print("player3:",player3)
print("player4:",player4)
cv.pack()
root.mainloop()
如需要扑克牌图片和代码资源在我主页资源里找哈
小编这个考试很忙,以后为了能及时给大家更新不拖拉,提高质量,以后决定两天一更新,把质量提上去,让大家更能理解一些。