Python+Tkinter制作猜燈謎小游戲
導(dǎo)語
元宵節(jié),又稱上元節(jié)、燈節(jié),是春節(jié)之后的第一個重要節(jié)日。
相傳,漢文帝(前179—前157年)為慶祝周勃于正月十五勘平諸呂之亂,每逢此夜,必出宮游玩,與民同樂,在古代,夜同宵,正月又稱元月,漢文帝就將正月十五定為元宵節(jié)。
隨著社會和時代的變遷,元宵節(jié)的風(fēng)俗習(xí)慣在不斷變化,但至今仍是中國的傳統(tǒng)節(jié)日。2008年,元宵節(jié)選入第二批國家級非物質(zhì)文化遺產(chǎn)。
對我而言,除了吃元宵、看花燈……還有一件最重要的事情…就是…
猜燈謎!猜燈謎!!猜燈謎?。?!猜謎事小,展現(xiàn)聰明才智事大哈哈哈.jpg 開個小玩笑啦~
今天小編就給大家寫一款猜燈謎的小游戲一起嗨皮叭~
正文
“猜燈謎”是我國元宵節(jié)的一項特色活動,最早是由謎語發(fā)展而來。謎語懸之于燈,供人猜射,始于南宋。因為謎語能啟迪智慧又饒有興趣,所以深受社會各階層歡迎。值此佳節(jié),小編也來湊個熱鬧,出幾個燈謎,給您助助興!看看您能猜出幾個?
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)) # 加載圖片并調(diào)整大小至窗口大小 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) # 設(shè)置輸入框,輸入答案 # 按鈕 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()
到此這篇關(guān)于Python+Tkinter制作猜燈謎小游戲的文章就介紹到這了,更多相關(guān)Python Tkinter猜燈謎內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談Python里面None True False之間的區(qū)別
這篇文章主要介紹了淺談Python里面None True False之間的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07使用Python和scikit-learn創(chuàng)建混淆矩陣的示例詳解
這篇文章主要介紹了使用Python和scikit-learn創(chuàng)建混淆矩陣的示例詳解,該示例包括生成數(shù)據(jù)集、為數(shù)據(jù)集選擇合適的機器學(xué)習(xí)模型、構(gòu)建、配置和訓(xùn)練它,最后解釋結(jié)果,即混淆矩陣,需要的朋友可以參考下2022-06-06Python實現(xiàn)個人微信號自動監(jiān)控告警的示例
今天小編就為大家分享一篇Python實現(xiàn)個人微信號自動監(jiān)控告警的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07python GUI庫圖形界面開發(fā)之PyQt5輸入對話框QInputDialog詳細使用方法與實例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5輸入對話框QInputDialog詳細使用方法與實例,需要的朋友可以參考下2020-02-02