今天我们用tkinter的canvas画布实现扑克牌的随机发牌:将54张牌随机发给四位牌手,在屏幕上显示每位牌手的牌,利用Canvas将发牌结果显示出来。
需要准备的是54张扑克牌的图片(gif或者png,jpg的话要经过额外的转换),为了保证最终的牌序是按照由小到大排列的,图片编号要按照AAAA、2222……KKKK、大小王来排列(也许A和2应该更大,但是请忽略这一点)。
下面是完整代码:
from tkinter import *
import random
n=54
(player1,player2,player3,player4)=([],[],[],[])
(p1,p2,p3,p4)=([],[],[],[])
pocker=[i for i in range(n)]
imgs=[]
root=Tk()
cv=Canvas(root,bg="White",width=700,height=600)
#洗牌(用随机交换打乱牌序)
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=gen_pocker(n) #打乱后的牌组编号
#将图片放入imgs列表
for i in range(1,55):
imgs.insert(i,PhotoIma