# -*- coding: utf-8 -*- # @Time : 2020/12/3 下午6:38 # @Author : Zhenghui Lyu # @File : main.py # @Software: PyCharm from tkinter import * import random def gen_pocker(n): # 洗牌函数,随机产生两个下标,将次下标的两个元素交换,达到洗牌目的 x = 100 while x > 0: x = x - 1 p1 = random.randint(0, n - 1) p2 = random.randint(0, n - 1) pocker[p1], pocker[p2] = pocker[p2], pocker[p1] return pocker pocker = [i for i in range(52)] # 梅花0-12表示;方块13-25;红桃26-38;黑桃39-51,初始化存储 pocker = gen_pocker(52) # 洗好牌 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): # 每种13张 imgs.insert((i - 1) * 13 + (j - 1), PhotoImage(file=str(i) + '-' + str(j) + '.gif')) # imgs[0]存1-1.gif;imgs[1]存1-2.gif,以此类推 for x in range(13): # 13轮发牌 m = x * 4 # 0,4,8,12... 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): # x:0到12 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()
牌gif文件略。