Python+Tkinter制作猜灯谜小游戏
作者:顾木子吖 发布时间:2021-09-24 19:43:17
标签: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()
来源:https://blog.csdn.net/weixin_55822277/article/details/122948943


猜你喜欢
- 持续更新一些常用的Tensor操作,比如List,Numpy,Tensor之间的转换,Tensor的拼接,维度的变换等操作。其它Tensor
- 目前还没有更好的方法来追写Excel,lorinnn在网上搜索到以及之后用到的方法就是使用第三方库xlutils来实现了这个功能,主体思想就
- 这篇文章主要介绍了Python2和Python3中@abstractmethod使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工
- 下面就是解决方案: 1- From the command prompt, stop isqlplus: c:\>isqlplusct
- Pycharm代码运行调试,具体内容如下1、准备工作(1)Python版本为2.7或者更高版本(2)已经创建了一个Python工程并且添加了
- 前言实验目的:掌握开发、测试、发布、调用进程间通信的基本方法、工具和流程,理解独立构件体系结构基本原理、结构和特点。掌握使用当今主流云平台来
- 摘要前面给大家分享了pandas做数据合并的两篇[pandas.merge]和[pandas.cancat]的用法。今天这篇主要讲的是pan
- 1、安装pecl及创建快捷键(若安装php时已带可忽略这步安装步骤)# cd /usr/local/php/bin/ //可查看
- 页面置换算法:本质是为了让有限内存能满足无线进程。先说明一下处理缺页错误的过程:分页硬件在通过页表转换地址时会注意到无效位被设置,从而陷入操
- 图像素描特效图像素描特效主要经过以下几个步骤:调用cv.cvtColor()函数将彩色图像灰度化处理;通过cv.GaussianBlur()
- 在说到什么是回表查询的时候,有两个概念需要先解释清楚:分别是聚集索引(聚簇索引)和非聚集索引(非聚簇索引)聚集索引和非聚集索引MySQL规定
- 这十则CSS技巧汇编于网络,作为老手已经司空见惯了,也没有什么新意,但温故而知新,或许阅读一遍也有一定的启发,本文主要面对CSS新手朋友,有
- 快速入门In [1]: import time# 获取当前时间In [25]: time.strftime("%Y-%m-%d_%
- 1.概述Kivy是一套Python下的跨平台开源应用开发框架,官网,我们可以用它来将Python程序打包为安卓的apk安装文件。以下是在wi
- /* 小弟刚刚接触ORACLE存储过程,有一个问题向各位同行求教,小弟写了一个存储过程,其目的是接收一个参数作为表名,然后查询该表中的全部记
- 效果如图 一、获取天气def getWeather1(city): try:
- 1.预备知识python语言,scrapy爬虫基础,json模块,flask后端2.抓取CSDN数据接口使用谷歌抓包工具抓取CSDN搜索引擎
- 发现这个也是偶然,在测试的时候发现的,因此问题还发现一个bug。蛮有意思~ 假如输入http://www.aspxhome.com的话,在
- 1. pyecharts 模块介绍Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。
- 以下操作演示都是基于mysql5.6.36版本:工作中经常遇到这样的问题:mysql数据访问能量很大,想要从sql方面优化。研发经常会问到能