Tkinter:創建一個小游戲并可視化結果
介紹
圖形用戶界面(GUI)是為用戶交互提供靈活性的界面。它的交互性使我著迷。應用程序越吸引人,游戲開發就越好。GUI的最常見組件是主窗口,按鈕,文本輸入,標簽,菜單等。在Python中進行GUI開發的最常見選項是Tkinter,wxPython和JPython。我們將在本文中討論Tkinter,創建一個小游戲并可視化結果。
Tkinter概述
Python提供了一個名為Tkinter的標準GUI庫。Tkinter模塊有助于快速簡便地創建GUI應用程序。Tkinter提供了15種類型的小部件。一些常見的按鈕,標簽,框架,菜單。消息,單選按鈕,文本,滾動條等。在本文中,我們將創建一個小游戲。用戶將持續獲得數字問題。他們將回答并單擊Enter進入下一個問題,直到他們決定退出并處理結果。正確和不正確的答案將被捕獲,以在最后顯示結果。我們將使用標簽,結束,條目,文本,按鈕之類的小部件。事不宜遲,讓我們開始實施吧!
執行
1.導包
將所有包分開導入是個好習慣。import tkinter
import random
from random import randint
from tkinter import Button
import matplotlib.pyplot as plt
import numpy as np
2.創建一個GUI窗口和全局變量聲明
我們將創建界面布局。確定版面大小和一個引人注目的標題root = tkinter.Tk()
root.title("Are you smart!!")
root.geometry("400x200")
correct_result=0
correct_answers=0
total_questions=0
incorrect_answer=0
3.評估結果的函數
我們將創建一個小小的函數定義以完成使代碼易于維護和易于閱讀的任務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.after(1500, result.destroy)
4.創建問題的函數
我們將使用random來創建隨機整數,并為'+','-'和'*'運算符創建隨機選擇,以便用戶可以獲取隨機的數字問題集來回答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.退出函數
我們將創建一個微型函數以退出并記錄結果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.最初的問題
我們將基于隨機整數和數字運算符的隨機集合創建問題的初始集合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.標簽創建
我們將創建界面的文本和布局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('
可視化
在用戶決定退出游戲后,我們將使用條形圖和餅形圖向用戶顯示結果#Plotting the bar graph



請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
- 1 AI狂歡遇上油價破百,全球股市還能漲多久? | 產聯看全球
- 2 OpenAI深夜王炸!ChatGPT Images 2.0實測:中文穩、細節炸,設計師慌了
- 3 6000億美元估值錨定:字節跳動的“去單一化”突圍與估值重構
- 4 Tesla AI5芯片最新進展總結
- 5 連夜測了一波DeepSeek-V4,我發現它可能只剩“審美”這個短板了
- 6 熱點丨AI“瑜亮之爭”:既生OpenClaw,何生Hermes?
- 7 AI界的殺豬盤:9秒刪庫跑路,全員被封號,還繼續扣錢!
- 8 2026,人形機器人只贏了面子
- 9 DeepSeek降價90%:價格屠夫不是身份,是戰略
- 10 AI Infra產業鏈卡在哪里了?


分享













