訂閱
糾錯
加入自媒體

Tkinter:創(chuàng)建一個小游戲并可視化結(jié)果

介紹

圖形用戶界面(GUI)是為用戶交互提供靈活性的界面。它的交互性使我著迷。應用程序越吸引人,游戲開發(fā)就越好。GUI的最常見組件是主窗口,按鈕,文本輸入,標簽,菜單等。在Python中進行GUI開發(fā)的最常見選項是Tkinter,wxPython和JPython。我們將在本文中討論Tkinter,創(chuàng)建一個小游戲并可視化結(jié)果。

Tkinter概述

Python提供了一個名為Tkinter的標準GUI庫。Tkinter模塊有助于快速簡便地創(chuàng)建GUI應用程序。Tkinter提供了15種類型的小部件。一些常見的按鈕,標簽,框架,菜單。消息,單選按鈕,文本,滾動條等。在本文中,我們將創(chuàng)建一個小游戲。用戶將持續(xù)獲得數(shù)字問題。他們將回答并單擊Enter進入下一個問題,直到他們決定退出并處理結(jié)果。正確和不正確的答案將被捕獲,以在最后顯示結(jié)果。我們將使用標簽,結(jié)束,條目,文本,按鈕之類的小部件。事不宜遲,讓我們開始實施吧!

執(zhí)行

1.導包

將所有包分開導入是個好習慣。import tkinter
import random
from random import randint
from tkinter import Button
import matplotlib.pyplot as plt
import numpy as np

2.創(chuàng)建一個GUI窗口和全局變量聲明

我們將創(chuàng)建界面布局。確定版面大小和一個引人注目的標題root = tkinter.Tk()

root.title("Are you smart!!")
root.geometry("400x200")
correct_result=0
correct_answers=0
total_questions=0
incorrect_answer=0

3.評估結(jié)果的函數(shù)

我們將創(chuàng)建一個小小的函數(shù)定義以完成使代碼易于維護和易于閱讀的任務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)建問題的函數(shù)

我們將使用random來創(chuàng)建隨機整數(shù),并為'+','-'和'*'運算符創(chuàng)建隨機選擇,以便用戶可以獲取隨機的數(shù)字問題集來回答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)建一個微型函數(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.最初的問題

我們將基于隨機整數(shù)和數(shù)字運算符的隨機集合創(chuàng)建問題的初始集合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.標簽創(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

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關注公眾號
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯
x
*文字標題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網(wǎng)安備 44030502002758號