• 使用 Python 进行 GUI 掷骰子模拟


    使用 Python 进行 GUI 掷骰子模拟

    原文地址

    • 最后更新 : 02 Aug, 2022

    在本文中,我们将使用TkinterPython中的随机模块创建Rolling The Dices Game。

    Python中的随机模块是一个内置模块,用于为各种分布生成随机数。在这里,我们将使用此模块为我们的骰子创建随机结果。Python提供了各种库来满足我们的需求,Tkinter就是其中之一。Tkinter是Python的标准库,借助它,我们可以轻松创建图形用户界面应用程序,并向其添加按钮,滚动条,文本框和标签等小部件。

    先决条件

    • 我们必须具备Python,Tkinter和随机模块的基本知识。
    • Tkinter 模块应安装在系统上。

    安装

    可以通过在命令提示符下运行以下命令来安装 Tkinter:

    pip install tk
    
    • 1

    逐步实施

    现在,我们将为我们的Rolling The Dices游戏编写Python脚本。

    步骤 1:创建一个简单的 Tkinter 窗口。

    在此步骤中,我们只需创建一个窗口,并将背景色设置为黑色,窗口大小为“550 * 350”,并将窗口的标题设置为“滚动骰子游戏”。

    • 蟒蛇
    # Importing tkinter and random modules
    from tkinter import *
    import random
    
    # Creating a window
    window = Tk()
    
    # Setting background colour of the window
    window.configure(bg="black")
    
    # Setting geometry of the window
    window.geometry("550x350")
    
    # Setting title of the window
    window.title("Rolling The Dices Game")
    
    # Preventing maximizing of the window
    window.resizable(0, 0)
    
    window.mainloop()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    输出:

    在这里插入图片描述

    步骤2:添加“滚动”按钮并在窗口中标记它。

    在此步骤中,我们将在第一步中创建的窗口中添加一个“滚动”按钮。当我们单击滚动按钮时,骰子被滚动(随机洗牌),为此我们必须为滚动按钮创建一个函数。让我们在下一步中创建该函数。

    • 蟒蛇
    # Importing tkinter and random modules
    from tkinter import *
    import random
    
    # Creating a window
    window = Tk()
    
    # Setting background colour of the window
    window.configure(bg="black")
    
    # Setting geometry of the window
    window.geometry("550x350")
    
    # Setting title of the window
    window.title("Rolling The Dices Game")
    
    # Preventing maximizing of the window
    window.resizable(0, 0)
    
    # Adding button to roll the dices
    roll_button = Button(window, text="Roll!",
    					width=10, height=2,
    					font=15, bg="aqua", bd=2)
    # Setting the position of the button
    roll_button.pack(padx=10, pady=15)
    
    # Adding Label
    label = Label(window, font=("times", 250),
    			bg="black", fg="yellow")
    
    window.mainloop()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    输出:

    在这里插入图片描述

    步骤3:创建一个函数来掷骰子。

    在此步骤中,我们将使用随机模块的 random.choice() 函数为我们在上一步中制作的滚动按钮制作一个函数,该函数可以使用随机模块的 random.choice() 函数来随机选择骰子顶部的数字。每当我们点击掷骰子按钮时,可以在骰子的顶部看到随机数量的点。为了在顶部显示骰子点,我们使用死面的 Unicode 字符,例如“\u2680 表示 1 点”和“\u2681 表示 2 点”。

    • 蟒蛇
    # Importing tkinter and random modules
    from tkinter import *
    import random
    
    # Creating a window
    window = Tk()
    
    # Setting background colour of the window
    window.configure(bg="black")
    
    # Setting geometry of the window
    window.geometry("550x350")
    
    # Setting title of the window
    window.title("Rolling The Dices Game")
    
    # Preventing maximizing of the window
    window.resizable(0, 0)
    
    # Creating function to roll the dices
    def roll_dices():
    	# These values indicate dots on the dices.
    	# For eg: \u2680 corresponds to 1 dot,
    	# \u2681 corresponds to 2 dots etc.
    	dice_dots = ['\u2680', '\u2681',
    				'\u2682', '\u2683',
    				'\u2684', '\u2685']
    	# Generating random dots on the dices
    	label.configure(
    		text=f'{random.choice(dice_dots)}{random.choice(dice_dots)}')
    	label.pack()
    
    
    # Adding button to roll the dices
    roll_button = Button(window, text="Roll!",
    					width=10, height=2,
    					font=15, bg="aqua",
    					bd=2, command=roll_dices)
    # Setting the position of the button
    roll_button.pack(padx=10, pady=15)
    
    # Adding Label
    label = Label(window, font=("times", 250),
    			bg="black", fg="yellow")
    
    window.mainloop()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    输出:
    在这里插入图片描述

  • 相关阅读:
    网络安全之Windows提权(上篇)(高级进阶)
    蓝桥杯动态规划每日一题
    MyLife - Docker安装MySQL
    【思科、华为、华三这三大认证,选哪个考最好?】
    ARM day4
    uboot启动学习笔记 二 启动前准备工作及启动介质选择
    DOX-Poloxamer/DBCO-PEG-DOX 阿霉素修饰泊洛沙姆/二苯基环辛-聚乙二醇-阿霉素的探究
    Java 继承(extends)
    python自动化爬虫实战
    想学嵌入式?要不一起玩 Arduino 吧
  • 原文地址:https://blog.csdn.net/acktomas/article/details/126226883