使用 Python 进行 GUI 掷骰子模拟
- 最后更新 : 02 Aug, 2022
在本文中,我们将使用Tkinter和Python中的随机模块创建Rolling The Dices Game。
Python中的随机模块是一个内置模块,用于为各种分布生成随机数。在这里,我们将使用此模块为我们的骰子创建随机结果。Python提供了各种库来满足我们的需求,Tkinter就是其中之一。Tkinter是Python的标准库,借助它,我们可以轻松创建图形用户界面应用程序,并向其添加按钮,滚动条,文本框和标签等小部件。
先决条件
- 我们必须具备Python,Tkinter和随机模块的基本知识。
- Tkinter 模块应安装在系统上。
安装
可以通过在命令提示符下运行以下命令来安装 Tkinter:
pip install tk
逐步实施
现在,我们将为我们的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()
输出:
步骤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()
输出:
步骤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()
输出: