我用ChatGPT编写一个英语猜单词游戏源码

一、背景

我们可以利用python中的tkinter框架创建一个简单的英语单词猜词游戏。用户将看到一个缺少几个字母的单词,并需要填写出正确的字母,填写正确后会提醒correct,错误则提示:try again. 本代码全程利用VScode中的ChatGPT插件来完成。

二、实现过程

步骤 1:导入必要的库

我们需要导入 tkinter 库来创建图形用户界面(GUI),还需要导入 random 库来随机选择单词。

import tkinter as tk
import random

步骤 2:创建主窗口

创建一个主窗口,并设置窗口的标题和大小。

root = tk.Tk()
root.title("Guess the Word Game")
root.geometry("400x300")

步骤 3:定义单词列表和游戏逻辑

我们需要一个单词列表和一个函数来随机选择一个单词并生成缺少字母的版本。

words = ["python", "tkinter", "widgets", "canvas", "button"]

def get_random_word():
    word = random.choice(words)
    hide_count = len(word) // 3  # 随机隐藏1/3的字母
    word_list = list(word)
    indexes = random.sample(range(len(word)), hide_count)
    for index in indexes:
        word_list[index] = "_"
    return word, "".join(word_list)

步骤 4:设置游戏元素

设置一个标签来显示带有下划线的单词,一个输入框用于用户输入,以及一个按钮来检查答案。

original_word, displayed_word = get_random_word()

word_label = tk.Label(root, text=displayed_word, font=("Helvetica", 24))
word_label.pack(pady=20)

entry = tk.Entry(root, font=("Helvetica", 14))
entry.pack(pady=10)

result_label = tk.Label(root, text="", font=("Helvetica", 14))
result_label.pack(pady=10)

步骤 5:检查用户输入

定义一个函数来检查用户输入的单词是否正确。当用户点击按钮时,触发检查函数。

def check_answer():
    user_input = entry.get()
    if user_input.lower() == original_word:
        result_label.config(text="Correct!", fg="green")
    else:
        result_label.config(text="Try Again!", fg="red")

check_button = tk.Button(root, text="Check Answer", command=check_answer)
check_button.pack(pady=10)

步骤 6:启动主循环

启动主循环来运行应用程序。

root.mainloop()

三、完整代码展示

根据以上每个步骤代码,我们整合出一个py文件,同时添加了答对正确自动切换到下一个单词的功能。每一次会随机隐藏三分之一的代码。游戏的界面如下:

完整的代码如下图所示:

import tkinter as tk
import random

# 创建主窗口
root = tk.Tk()
root.title("Guess the Word Game")
root.geometry("400x300")

# 单词列表
words = ["python", "tkinter", "widgets", "canvas", "button"]

# 获取随机单词并隐藏其一部分字母
def get_random_word():
    word = random.choice(words)
    hide_count = len(word) // 3  # 随机隐藏1/3的字母
    word_list = list(word)
    indexes = random.sample(range(len(word)), hide_count)
    for index in indexes:
        word_list[index] = "_"
    return word, "".join(word_list)

# 重置游戏
def reset_game():
    global original_word, displayed_word
    original_word, displayed_word = get_random_word()
    word_label.config(text=displayed_word)
    entry.delete(0, tk.END)
    result_label.config(text="")

# 设置游戏元素
original_word, displayed_word = get_random_word()

word_label = tk.Label(root, text=displayed_word, font=("Helvetica", 24))
word_label.pack(pady=20)

entry = tk.Entry(root, font=("Helvetica", 14))
entry.pack(pady=10)

result_label = tk.Label(root, text="", font=("Helvetica", 14))
result_label.pack(pady=10)

def check_answer():
    user_input = entry.get()
    if user_input.lower() == original_word:
        result_label.config(text="Correct!", fg="green")
        root.after(1000, reset_game)  # 1秒后重置游戏
    else:
        result_label.config(text="Try Again!", fg="red")

check_button = tk.Button(root, text="Check Answer", command=check_answer)
check_button.pack(pady=10)

# 启动主循环
root.mainloop()

三、学后总结

这个英语猜单词游戏过随机隐藏单词中的部分字母让玩家进行猜测,简单但有趣。如果你有任何修改或扩展的想法,可以尝试:读取单词表,增加更多单词到单词列表中;增加计时功能;增加难度选项(如隐藏更多字母);添加记分系统等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PythonFun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值