python练手之制作扑克牌用户界面

首先看效果
在这里插入图片描述
代码如下:

from tkinter import *
import random


class DeckOfCardsGUI:
    def __init__(self):
        window = Tk()
        window.title("Pick Four Cards Randomly")

        self.imageList = []
        for i in range(3,  55):
            self.imageList.append(PhotoImage(file="image/"+str(i)+".png"))

        frame = Frame(window)
        frame.pack()

        self.labelList = []
        for i in range(5):
            self.labelList.append(Label(frame, image=self.imageList[i]))
            self.labelList[i].pack(side=LEFT)
        Button(window, text="Shuffle", command=self.shuffle).pack()
        window.mainloop()


    def shuffle(self):
        random.shuffle(self.labelList)
        for i in range(4):
            self.labelList[i]["image"] = self.imageList[i]


if __name__ == '__main__':
    app = DeckOfCardsGUI()

扑克牌图片百度网盘链接如下:
链接:link.
提取码:1111

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您的问题是如何用Python实现一个交互式界面扑克牌发牌程序。下面是一个简单的实现示例,您可以参考一下: ```python import random import tkinter as tk # 创建扑克牌的列表 suits = ['♠', '♥', '♦', '♣'] ranks = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] deck = [rank + suit for suit in suits for rank in ranks] # 创建交互式界面 root = tk.Tk() root.title('扑克牌发牌程序') canvas = tk.Canvas(root, width=800, height=600) canvas.pack() # 创建玩家和底牌的标签 player_label = tk.Label(root, text='玩家:') player_label.place(x=50, y=50) deck_label = tk.Label(root, text='底牌:') deck_label.place(x=50, y=100) # 创建发牌按钮,点击后随机发一牌给玩家或底牌 def deal_card(): card = random.choice(deck) deck.remove(card) if len(player_cards) < 5: player_cards.append(card) player_card_label.config(text=' '.join(player_cards)) else: deck_cards.append(card) deck_card_label.config(text=' '.join(deck_cards)) deal_button = tk.Button(root, text='发一牌', command=deal_card) deal_button.place(x=50, y=150) # 创建玩家和底牌的显示标签 player_card_label = tk.Label(root, text='', font=('Arial', 20)) player_card_label.place(x=150, y=50) deck_card_label = tk.Label(root, text='', font=('Arial', 20)) deck_card_label.place(x=150, y=100) # 初始化玩家和底牌的牌组 player_cards = [] deck_cards = [] root.mainloop() ``` 这个程序使用了Tkinter库创建了一个交互式界面,包括一个发牌按钮和两个标签用于显示玩家和底牌的牌组。点击发牌按钮后,程序会随机从扑克牌列表中选取一牌,并将其从列表中删除。如果玩家的牌组还没有满5,则将这牌加入玩家的牌组中,并更新玩家牌组的显示标签;否则,将这牌加入底牌的牌组中,并更新底牌牌组的显示标签。 您可以根据自己的需求进行修改和扩展,比如增加计分功能、添加更多的按钮和标签等等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值