python 扑克牌小游戏-扑克牌发牌窗口小程序

通过python中tkinter库来开发这个程序的。

游戏规则:4位玩家打牌,计算机随机将52张牌(不含大小王)发给4位玩家,在屏幕上显示每位玩家的牌。程序运行效果如下

分析:

其思路和控制台程序一样。将要发的52张牌按梅花0~12、方块13~25、红桃26~38~黑桃39~51顺序编号并存储在pocker列表(未洗牌之前)中,同时按此编号顺序存储扑克牌图片于imgs列表中。也就是说,imgs[0]存储梅花A的图片,imgs[1]存储梅2的图片,imgs[14]存储方块2的图片。
发牌后,根据每位玩家(pl、p2、p3、p4)的牌的编号列表从imgs列表中获取对应牌的图片,并使用create_image((x坐标,y坐标), image=图像文件)显示在指定位置。

代码如下:

from tkinter import *
import random

a1=100
a2=200
a3=100
a4=200
image1=[]
image2=[]
image3=[]
image4=[]


#扑克牌数组


arr=['3梅花.png','4梅花.png','5梅花.png','6梅花.png','7梅花.png','8梅花.png','9梅花.png','10梅花.png','J梅花.png','Q梅花.png','K梅花.png','A梅花.png','2梅花.png',
   '3方片.png','4方片.png','5方片.png','6方片.png','7方片.png','8方片.png','9方片.png','10方片.png','J方片.png','Q方片.png','K方片.png','A方片.png','2方片.png',
   '3红桃.png','4红桃.png','5红桃.png','6红桃.png','7红桃.png','8红桃.png','9红桃.png','10红桃.png','J红桃.png','Q红桃.png','K红桃.png','A红桃.png','2红桃.png',
   '3黑桃.png','4黑桃.png','5黑桃.png','6黑桃.png','7黑桃.png','8黑桃.png','9黑桃.png','10黑桃.png','J黑桃.png','Q黑桃.png','K黑桃.png','A黑桃.png','2黑桃.png']

random.shuffle(arr)

def fun1(i):                                         #左边的牌
   global a1
   #x=arr[i]

   s = "C:\\Users\\29311\\Desktop\\扑克牌\\" + arr[i]
   bm = PhotoImage(file=s)
   image1.append(bm)
   lan=Label(root,image=bm)
   lan.place(x=80,y=a1)
   a1+=30

def fun2(i):                                         #上边的牌
   global a2
   s = "C:\\Users\\29311\\扑克牌\\" + arr[i]            路径
   bm = PhotoImage(file=s)
   image2.append(bm)
   lenn=Label(root,image=bm)
   lenn.place(x=a2,y=20)
   a2+=30

def fun3(i):                                         #右边的牌
   global a3
   s = "C:\\Users\\29311\\扑克牌\\" + arr[i]
   bm = PhotoImage(file=s)
   image3.append(bm)
   lenn=Label(root,image=bm)
   lenn.place(x=680,y=a3)
   a3+=30

def fun4(i):                                         #下边的牌
   global a4
   s = "C:\\Users\\29311\\扑克牌\\" + arr[i]
   bm = PhotoImage(file=s)
   image4.append(bm)
   lenn=Label(root,image=bm)
   lenn.place(x=a4,y=550)
   a4+=30

root=Tk()
root.geometry("850x700")


for i in [0,4,8,12,16,20,24,28,32,36,40,44,48]:
   fun1(i)
   fun2(i+1)
   fun3(i+2)
   fun4(i+3)

print(image1)




root.mainloop()

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值