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

2024-09-05 10:52

本文主要是介绍我用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_wordoriginal_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()

三、学后总结

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

这篇关于我用ChatGPT编写一个英语猜单词游戏源码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138759

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti