开发工具:pycharm
游戏介绍: 机随机将52张牌(不含大王和小王)发给四位牌手,在屏幕上显示每位牌手的牌
程序设计步骤:
程序设计思路 :
将要发的52张牌,按梅花0~12,方块13- 25,红桃26- 38,黑桃39- 51的顺序编号并存储在pocker列表c未洗牌之前l,列表元素存储的是某张牌c实际上是牌的编号)。同时,按此编号将扑克牌图片顺序存储在imgs列表中。也就是说,imgs[0]存储梅花A的图片,imgs[1]存储梅花2的图片,imgs[14]存储方块2的图片,依次类推。
发牌后,根据每位牌手(pl,p2,p3,p4)各自牌的编号列表,从imgs获取对应牌的图片,并使用create- image《x坐标,y坐标),image=图像文件)将牌显示在指定位置。
3.Canvas图形绘制技术
Canvas为Tkinter提供了绘图功能,其提供的图形绘制函数可绘制线形、圆形、椭圆、多边形、图片等。
Canvas画布组件
Canvas(画布)是一个长方形的区域,用于图形绘制或复杂的图形界面布局。用户以在画布上绘制图形、文字,放置各种组件和框架。
可以使用下面的方法创建一个Canvas对象。
Canvas对象嚣Canvas (窗口对象+ 选项+ …)
显示Canvas对象的方法如下。
Canvas对象。pack()
Canvas上的图形对象
参考代码:
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) (player1,player2,player3,player4)=([],[],[],[]) (p1,p2,p3,p4)=([],[],[],[]) root=Tk() cv=Canvas(root,bg='White',width=700,height=600) imgs=[] for i in range(1,5): for j in range(1,14): imgs.insert((i-1)*13+(j-1),PhotoImage(file='images\\'+str(i)+'-'+str(j)+'.gif')) 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(0,13): img=imgs[p1[x]] player1.append(cv.create_image((200+20*x,80),image=img)) img=imgs[p2[x]] player2.append(cv.create_image((100 ,150+20 * x), image=img)) img = imgs[p3[x]] player3.append(cv.create_image((200 + 20 *x, 500), image=img)) img = imgs[p4[x]] player4.append(cv.create_image((560,150+20 * x), image=img)) print("player1:",player1) print("player2:",player2) print("player3:",player3) print("player4:",player4) cv.pack() root.mainloop()
运行界面:
来源:oschina
链接:https://my.oschina.net/u/4463382/blog/3190493