Tkinter:創(chuàng)建一個(gè)小游戲并可視化結(jié)果
介紹
圖形用戶界面(GUI)是為用戶交互提供靈活性的界面。它的交互性使我著迷。應(yīng)用程序越吸引人,游戲開發(fā)就越好。GUI的最常見(jiàn)組件是主窗口,按鈕,文本輸入,標(biāo)簽,菜單等。在Python中進(jìn)行GUI開發(fā)的最常見(jiàn)選項(xiàng)是Tkinter,wxPython和JPython。我們將在本文中討論Tkinter,創(chuàng)建一個(gè)小游戲并可視化結(jié)果。
Tkinter概述
Python提供了一個(gè)名為Tkinter的標(biāo)準(zhǔn)GUI庫(kù)。Tkinter模塊有助于快速簡(jiǎn)便地創(chuàng)建GUI應(yīng)用程序。Tkinter提供了15種類型的小部件。一些常見(jiàn)的按鈕,標(biāo)簽,框架,菜單。消息,單選按鈕,文本,滾動(dòng)條等。在本文中,我們將創(chuàng)建一個(gè)小游戲。用戶將持續(xù)獲得數(shù)字問(wèn)題。他們將回答并單擊Enter進(jìn)入下一個(gè)問(wèn)題,直到他們決定退出并處理結(jié)果。正確和不正確的答案將被捕獲,以在最后顯示結(jié)果。我們將使用標(biāo)簽,結(jié)束,條目,文本,按鈕之類的小部件。事不宜遲,讓我們開始實(shí)施吧!
執(zhí)行
1.導(dǎo)包
將所有包分開導(dǎo)入是個(gè)好習(xí)慣。import tkinter
import random
from random import randint
from tkinter import Button
import matplotlib.pyplot as plt
import numpy as np
2.創(chuàng)建一個(gè)GUI窗口和全局變量聲明
我們將創(chuàng)建界面布局。確定版面大小和一個(gè)引人注目的標(biāo)題root = tkinter.Tk()
root.title("Are you smart!!")
root.geometry("400x200")
correct_result=0
correct_answers=0
total_questions=0
incorrect_answer=0
3.評(píng)估結(jié)果的函數(shù)
我們將創(chuàng)建一個(gè)小小的函數(shù)定義以完成使代碼易于維護(hù)和易于閱讀的任務(wù)def evaluate(event):
global correct_result
global user_input
user_input_given = user_input.get()
if str(user_input_given) == str(correct_result):
global correct_answers
correct_answers += 1
nextQuestion()
else:
global incorrect_answer
incorrect_answer += 1
result = tkinter.Label(root, text="Hard Luck!!nThe correct answer is : "+str(correct_result), font=('Helvetica', 10))
result.pack()
nextQuestion()
root.a(chǎn)fter(1500, result.destroy)
4.創(chuàng)建問(wèn)題的函數(shù)
我們將使用random來(lái)創(chuàng)建隨機(jī)整數(shù),并為'+','-'和'*'運(yùn)算符創(chuàng)建隨機(jī)選擇,以便用戶可以獲取隨機(jī)的數(shù)字問(wèn)題集來(lái)回答def nextQuestion():
user_input.focus_set()
user_input.delete(0, tkinter.END)
global first_num
first_num = randint(1,15)
global second_num
second_num = randint(1,15)
global character
character = random.choice("+-*")
global correct_result
if character == '*':
correct_result = first_num*second_num
if character == '+':
correct_result = first_num+second_num
if character == '-':
correct_result = first_num-second_num
text="Enter the value of "+str(first_num)+" "+character+" "+str(second_num)
global total_questions
total_questions += 1
user_question.config(text=text)
user_question.pack()
5.退出函數(shù)
我們將創(chuàng)建一個(gè)微型函數(shù)以退出并記錄結(jié)果def exitThis():
print("Total Questions attended : "+str(total_questions))
print("Total Correct Answers : "+str(correct_answers))
print("Total Incorrect Answers : "+str(incorrect_answer))
root.destroy()
6.最初的問(wèn)題
我們將基于隨機(jī)整數(shù)和數(shù)字運(yùn)算符的隨機(jī)集合創(chuàng)建問(wèn)題的初始集合first_num = randint(1,15)
second_num = randint(1,15)
character = random.choice("+-*")
if character == '*':
correct_result = first_num*second_num
if character == '+':
correct_result = first_num+second_num
if character == '-':
correct_result = first_num-second_num
7.標(biāo)簽創(chuàng)建
我們將創(chuàng)建界面的文本和布局user_question = tkinter.Label(root, text="Enter the value of "+str(first_num)+" "+character+" "+str(second_num), font=('Helvetica', 10))
user_question.pack()
user_input = tkinter.Entry(root)
root.bind('
可視化
在用戶決定退出游戲后,我們將使用條形圖和餅形圖向用戶顯示結(jié)果#Plotting the bar graph
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
即日-11.13立即報(bào)名>>> 【在線會(huì)議】多物理場(chǎng)仿真助跑新能源汽車
-
11月20日火熱報(bào)名中>> 2024 智能家居出海論壇
-
11月28日立即報(bào)名>>> 2024工程師系列—工業(yè)電子技術(shù)在線會(huì)議
-
12月19日立即報(bào)名>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
即日-12.26火熱報(bào)名中>> OFweek2024中國(guó)智造CIO在線峰會(huì)
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
推薦專題
- 1 【一周車話】沒(méi)有方向盤和踏板的車,你敢坐嗎?
- 2 特斯拉發(fā)布無(wú)人駕駛車,還未迎來(lái)“Chatgpt時(shí)刻”
- 3 特斯拉股價(jià)大跌15%:Robotaxi離落地還差一個(gè)蘿卜快跑
- 4 馬斯克給的“驚喜”夠嗎?
- 5 喜迎新車間!干冒煙的小米車間可以緩口氣
- 6 月之暗面發(fā)布 Kimi 探索版:搜索量相比普通版增強(qiáng) 10 倍
- 7 三星半導(dǎo)體裁員,先動(dòng)高管
- 8 上海設(shè)立100億人工智能生態(tài)基金,Minimax階躍星辰獲支持
- 9 補(bǔ)貼燒不出忠誠(chéng)度,Kimi的商業(yè)化困局
- 10 中美無(wú)人駕駛競(jìng)速賽,蘿卜快跑特斯拉誰(shuí)更快?
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市