2021-01-04

发牌游戏值得一学,基于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()

如需要扑克牌图片和代码资源在我主页资源里找哈
小编这个考试很忙,以后为了能及时给大家更新不拖拉,提高质量,以后决定两天一更新,把质量提上去,让大家更能理解一些。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值