Tkinter:創(chuàng)建一個(gè)小游戲并可視化結(jié)果
介紹
圖形用戶界面(GUI)是為用戶交互提供靈活性的界面。它的交互性使我著迷。應(yīng)用程序越吸引人,游戲開(kāi)發(fā)就越好。GUI的最常見(jiàn)組件是主窗口,按鈕,文本輸入,標(biāo)簽,菜單等。在Python中進(jìn)行GUI開(kāi)發(fā)的最常見(jiàn)選項(xiàng)是Tkinter,wxPython和JPython。我們將在本文中討論Tkinter,創(chuàng)建一個(gè)小游戲并可視化結(jié)果。
Tkinter概述
Python提供了一個(gè)名為T(mén)kinter的標(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é)束,條目,文本,按鈕之類的小部件。事不宜遲,讓我們開(kāi)始實(shí)施吧!
執(zhí)行
1.導(dǎo)包
將所有包分開(kāi)導(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)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
4月30日立即下載>> 【村田汽車】汽車E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書(shū)】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開(kāi)始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類新物種登上歷史舞臺(tái)
- 5 國(guó)產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來(lái)商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽(yáng)光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開(kāi)成長(zhǎng)空間
- 8 地平線自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營(yíng)收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?