使用 Tkinter 在 Python 中制作简单的 FLAMES 游戏

2025年3月17日 | 阅读 12 分钟

Python 提供了多种用于图形用户界面 (GUI) 开发的选择。在所有 GUI 方法中,Tkinter 是最常用的。它是Python 自带的 Tk GUI 工具包的典型 Python 接口。使用 Python 和 Tkinter构建 GUI 应用程序是最快、最简单的方法。Tkinter 使构建 GUI变得简单

制作一个 tkinter 应用程序

  • 导入 tkinter 模块
  • 创建主窗口(容器)
  • 将任意数量的控件添加到主窗口。
  • 将控件置于事件触发器下。

FLAMES 是什么?

FLAMES 这个缩写代表朋友、恋人、喜爱、婚姻、敌人和兄弟姐妹。这是一个在睡衣派对上玩得很开心的著名游戏,尤其受到年轻女孩、青少年和少女的欢迎,她们刚开始接触暗恋。虽然它不能精确确定一个人是否适合另一个人,但这个游戏可以和朋友一起玩得很开心

要创建 Python GUI 应用程序,会用到各种控件,如按钮、复选框、画布等。然而,我们将在程序中包含的一些控件是:

  • Button(按钮):使用 Button 添加不同类型的按钮到 Python 应用程序。
  • Frame(框架):框架是另一个控件可以放置和排列的容器。
  • Entry(输入框):输入框控件向用户显示单行文本字段。它常用于接收用户输入的数据。
  • Label(标签):标签是用于显示消息或其他关于其他控件的信息的文本。

让我们来创建一个简单的FLAMES 游戏的GUI 版本

代码解析

首先,我们将把 Python 库导入到我们的 Python 程序中。我们将导入Tkinter 模块。

然后,我们将创建一个名为 del_same_char() 的方法,用于删除名字中共同出现的字符。之后是一个for 循环,它将帮助我们检查上述信息。如果找到共同的字符,那么该字符将被删除,剩余的列表将被连接起来,并作为一个新列表与True 标志一起返回。

然后,如果没有共同字符,则将新的连接列表与False 标志一起返回。

然后,我们将定义一个名为 get_status() 的新方法来确定两个用户之间的关系状态。它将接收第一个玩家的名字pl01,检查并将其转换为小写(如果尚未小写),然后将所有空格替换为空字符串。最后,在执行上述步骤后,将生成一个包含所有字母的新列表

我们将再次重复上述所有步骤,这次是为第二个玩家。它将接收第二个玩家的名字pl02,检查并将其转换为小写(如果尚未小写),然后将所有空格替换为空字符串。最后,在执行上述步骤后,将生成一个包含所有字母的新列表

然后,我们将标志 processed 的初始值设置为true。之后,我们将使用 while 循环来不断执行 del_same_char() 方法,以删除所有共同或重复的字符,直到没有共同字符为止。然后将评估新返回的列表,并将连接列表进行切片,分成两个不同的列表,同时获取标志的当前值,并将两个新列表 pl01_Listpl02_List 存储起来。

然后,将从两个新形成列表的剩余长度中计算出剩余字符的总数,并将结果存储在 count 变量中。之后,将以数组的形式给出“FLAMES”单词所有缩写的列表。

接下来,我们将引入另一个 while 循环,持续检查直到给定的数组中只剩下一个元素。循环执行结束后,我们将拆分列表并分别存储它们。然后,在检查条件后,将通过连接形成新列表。如果条件不满足,则将根据情况连接结果列表。

然后,将使用 insert 方法将值插入到输入框中。

然后,将使用 clr_all() 方法重置和清除所有输入框。在此,我们将使用 delete() 方法来删除相应字段中填充的所有数据。

然后,我们将编写主代码,指定背景颜色、窗口大小、窗口标题,并创建Player 1、Player 2Relationship status(关系状态)标签,同时提及这些标签的背景颜色。然后,我们将使用 grid 方法通过提供行号和列号来设置这些标签的布局。然后,我们将以类似的方式创建输入框,在窗口中显示Player 1 的名字、Player 2 的名字以及关系状态等数据。

然后,我们将再次使用 grid 方法,但这次是为了在屏幕上以表格形式设置各种输入框的布局,以向用户显示,通过指定行号、列号大小。接下来,我们将创建一个名为submit button(提交按钮)的按钮,该按钮将负责提交用户输入的数据。还将创建另一个按钮,即clear button(清除按钮),其功能是清除输入框中存在的任何现有文本或数据。再次,将使用 grid 方法通过提供行号列号来设置屏幕上两个提交和清除按钮的布局和结构。最后,我们将通过调用 mainloop() 方法来启动GUI

完整代码

输出

上述代码的输出已附在下方截图。共有三张截图。

1. 显示 GUI 加载后的默认屏幕,其中包含需要用户填写数据的空框。

Simple FLAMES game using Tkinter in Python

2. 显示结果屏幕,在需要用户填写数据的空框中输入两个名字后,提供了他们关系状态的结果。

Simple FLAMES game using Tkinter in Python

3. 显示结果屏幕,在需要用户填写数据的空框中输入两个名字后,提供了他们关系状态的结果。

Simple FLAMES game using Tkinter in Python