首页 > 智能网

Tkinter:创建一个小游戏并可视化结果

来源:智能网
时间:2021-04-04 18:02:33
热度:99

Tkinter:创建一个小游戏并可视化结果介绍图形用户界面(GUI)是为用户交互提供灵活性的界面。它的交互性使我着迷。应用程序越吸引人,游戏开发就越好。GUI的最常见组件是主窗口,

介绍

图形用户界面(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