Python+Tkinter制作猜灯谜小游戏

 更新时间:2022年02月16日 09:18:38   作者:顾木子吖  
元宵节,又称上元节、灯节,是春节之后的第一个重要节日。而元宵节除了吃元宵、看花灯,还有一件最重要的事情就是猜灯谜!因此本文将通过Python Tkinter制作一个猜灯谜小游戏,感兴趣的小伙伴可以了解一下

导语

元宵节,又称上元节、灯节,是春节之后的第一个重要节日。

相传,汉文帝(前179—前157年)为庆祝周勃于正月十五勘平诸吕之乱,每逢此夜,必出宫游玩,与民同乐,在古代,夜同宵,正月又称元月,汉文帝就将正月十五定为元宵节。

随着社会和时代的变迁,元宵节的风俗习惯在不断变化,但至今仍是中国的传统节日。2008年,元宵节选入第二批国家级非物质文化遗产。

对我而言,除了吃元宵、看花灯……还有一件最重要的事情…就是…

猜灯谜!猜灯谜!!猜灯谜!!!猜谜事小,展现聪明才智事大哈哈哈.jpg  开个小玩笑啦~

今天小编就给大家写一款猜灯谜的小游戏一起嗨皮叭~

正文

“猜灯谜”是我国元宵节的一项特色活动,最早是由谜语发展而来。谜语悬之于灯,供人猜射,始于南宋。因为谜语能启迪智慧又饶有兴趣,所以深受社会各阶层欢迎。值此佳节,小编也来凑个热闹,出几个灯谜,给您助助兴!看看您能猜出几个?

1)效果展示

猜灯谜界面——

提醒功能——

回答正确——

2)主程序

from tkinter import messagebox
from PIL import Image, ImageTk
import random
import csv
import tkinter as tk
 
 
 
class LanternRiddles(object):
    def __init__(self):
        self.root = tk.Tk()
        self.root.title("猜灯谜闹元宵")
        self.root.geometry("1200x500")
        self.root.geometry("+100+150")
        self.data = []
        with open('new_data.csv', 'r') as f:
            reader = csv.reader(f)
            for row in reader:
                self.data.append(row)
        self.index = [i for i in range(len(self.data))]
        random.shuffle(self.index)
 
        # 做成背景的装饰
        pic1 = Image.open('pic/bg.jpg').resize((1200, 500))  # 加载图片并调整大小至窗口大小
        pic = ImageTk.PhotoImage(pic1)
        render = tk.Label(self.root, image=pic, compound=tk.CENTER, justify=tk.LEFT)
        render.place(x=0, y=0)
 
        # 标签 and 输入框
        label = tk.Label(self.root, text='输入答案', font=('微软雅黑', 15), fg='black', bg="Magenta")
        label.place(x=0, y=10, width=100, height=40)
        self.entry = tk.Entry(self.root, font=('宋体', 15), width=15, bg="GhostWhite")
        self.entry.place(x=110, y=10, width=150, height=40)  # 设置输入框,输入答案
        # 按钮
        confirm_button = tk.Button(self.root, text='确认', font=('微软雅黑', 15), bg="LightGreen", command=self.check)
        confirm_button.place(x=270, y=10, width=100, height=40)  # 确定按钮
 
        quit_button = tk.Button(self.root, text='退出软件', font=('微软雅黑', 15), bg="LightGreen", command=self.quit)
        quit_button.place(x=800, y=10, width=100, height=40)  # 退出软件
        start_button = tk.Button(self.root, text='开始答题', font=('微软雅黑', 15), bg="LightGreen", command=self.get_next)
        start_button.place(x=0, y=80, width=100, height=40)  # 更换题目
        prompt_button = tk.Button(self.root, text='显示提示', font=('微软雅黑', 15), bg="LightGreen", command=self.show_prompt)
        prompt_button.place(x=650, y=10, width=100, height=40)  # 更换题目
 
        self.riddle = tk.Text(self.root, bg="OrangeRed", fg="dimgray",  font=('微软雅黑', 15))
        self.riddle.place(x=200, y=180, width=300, height=160)  # 显示题目
 
        self.root.mainloop()
 
    def get_next(self):  # 更换题目
        self.riddle.delete('1.0', 'end')  # 清空显示
        index = random.choice(self.index)
        self.index.remove(index)
        self.question = self.data[index][0]
        self.answer = self.data[index][1]
        self.prompt = self.data[index][2]
        self.riddle.insert(tk.END, self.question)
 
    def check(self):  # 验证答案
        reply = self.entry.get()
        if reply in self.answer:
            messagebox.showinfo('提示', '回答正确')
            self.get_next()
            self.entry.delete(0, tk.END)
        else:
            messagebox.showinfo('提示', '回答错误,请重试')
            self.entry.delete(0, tk.END)
 
    def show_prompt(self):  # 显示提示
        messagebox.showinfo('提示', self.prompt)
 
    def quit(self):
        self.root.destroy()
 
 
if __name__ == '__main__':
    LanternRiddles()

到此这篇关于Python+Tkinter制作猜灯谜小游戏的文章就介绍到这了,更多相关Python Tkinter猜灯谜内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python asyncore socket客户端开发基本使用教程

    Python asyncore socket客户端开发基本使用教程

    asyncore库是python的一个标准库,提供了以异步的方式写入套接字服务的客户端和服务器的基础结构,这篇文章主要介绍了Python asyncore socket客户端开发基本使用,需要的朋友可以参考下
    2022-12-12
  • python线程池(threadpool)模块使用笔记详解

    python线程池(threadpool)模块使用笔记详解

    这篇文章主要介绍了python线程池(threadpool)模块使用笔记详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 利用python计算windows全盘文件md5值的脚本

    利用python计算windows全盘文件md5值的脚本

    这篇文章主要介绍了利用python计算windows全盘文件md5值的脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • TensorFlow实现保存训练模型为pd文件并恢复

    TensorFlow实现保存训练模型为pd文件并恢复

    今天小编就为大家分享一篇TensorFlow实现保存训练模型为pd文件并恢复,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • pycharm代码删除恢复的方法

    pycharm代码删除恢复的方法

    pycharm是一个很强大的编辑工具,很多朋友在使用过程中容易产生误操作,那么一不小心删除了,怎么恢复呢,今天就给大家介绍pycharm代码删除恢复教程,需要的朋友参考下吧
    2021-06-06
  • Numpy中的shape函数的用法详解

    Numpy中的shape函数的用法详解

    这篇文章主要介绍了Numpy中的shape函数的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python web框架fastapi中间件的使用及CORS跨域问题

    Python web框架fastapi中间件的使用及CORS跨域问题

    fastapi "中间件"是一个函数,它在每个请求被特定的路径操作处理之前,以及在每个响应之后工作,它接收你的应用程序的每一个请求,下面通过本文给大家介绍Python web框架fastapi中间件的使用及CORS跨域问题,感兴趣的朋友一起看看吧
    2024-03-03
  • Python日志极简配置示例

    Python日志极简配置示例

    这篇文章主要为大家介绍了Python日志极简配置示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Python使用lxml库实现高效处理XML和HTML

    Python使用lxml库实现高效处理XML和HTML

    lxml 是一个功能强大且高效的库,它基于 libxml2 和 libxslt 库,提供了简洁易用的 API 来处理 XML 和 HTML 文档,下面小编就来和大家详细讲讲它的具体使用吧
    2025-02-02
  • Python创建文件夹与文件的快捷方法

    Python创建文件夹与文件的快捷方法

    这篇文章主要给大家介绍了关于Python创建文件夹与文件的快捷方法以及批量创建文件夹的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论