Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

from tkinter import *

from random import randint,choice


root = Tk()
root.geometry("600x500")
root.title("Maths Quiz")

question = StringVar()
answer= StringVar()
givenanswer=StringVar()
score = IntVar()
questionNumber= IntVar()

def genrateQuestion():

global questionlabel

questionNumber.set(questionNumber.get()+1)

n1 = randint(1,10)
n2 = randint(1,10)

operator = choice(['+','-','*','/'])

question.set(str(n1) + operator + str(n2))


answer.set(eval(question.get()))

if questionlabel:
questionlabel.destroy()

questionlabel = Label(root, text=f"Question :{question.get()}",font=("courier


10 pitch",20))
questionlabel.grid(row=2,column=0)

def checkans():

global scorelabel

if questionNumber.get()>10:
return

global resultlabel
if resultlabel:
resultlabel.destroy()
if str(answer.get()) == givenanswer.get():
score.set(score.get() + 10)
print("your ans is correct")
resultlabel = Label(root, text="Correct",font=("courier 10
pitch",20),fg="green",bg="black")
resultlabel.grid(row=4,column=0)
scorelabel = Label(root, text=f"Score :{score.get()}",font=("courier 10
pitch",20),fg="Blue")
scorelabel.grid(row=5,column=0)
else:
resultlabel = Label(root, text="Incorrect",font=("courier 10
pitch",20),fg="red",bg="black")
resultlabel.grid(row=4,column=0)
print("your ans is incorrect")
scorelabel = Label(root, text=f"Score :{score.get()}",font=("courier 10
pitch",20),fg="Blue")
scorelabel.grid(row=5,column=0)

if questionNumber.get()==10:
scorelabel.destroy()
scorelabel = Label(root, text=f"Final Score :{score.get()}",font=("courier
10 pitch",20),fg="Blue")
scorelabel.grid(row=5,column=0)

else:
genrateQuestion()

def restart():
global scorelabel
scorelabel.destroy()
score.set(0)
questionNumber.set(0)
genrateQuestion()
scorelabel = Label(root, text=f"Score :{score.get()}",font=("courier 10
pitch",20),fg="Blue")
scorelabel.grid(row=5,column=0)

#UI
Headinglabel = Label(root, text="Maths Quiz", font=("Comic Sans MS",25))
Headinglabel.grid(row=0,column=0)

questionlabel = Label(root, text=question.get(),font=("courier 10 pitch",20))


questionlabel.grid(row=2,column=0)

answerentry= Entry(root, textvariable=givenanswer, font=("courier 10 pitch",20),


width=)
answerentry.grid(row=3,column=0)

Submitbutton = Button(root, text="Submit", font=("courier 10


pitch",15),command=checkans)#no brackets cuz we dont have to call the function
automatically
Submitbutton.grid(row=3,column=1)

scorelabel = Label(root, text=f"Score :{score.get()}",font=("courier 10


pitch",20),fg="Blue")
scorelabel.grid(row=5,column=0)

resultlabel = Label(root, text="Incorrect",font=("courier 10


pitch",20),fg="red",bg="black")
resultlabel.grid(row=4,column=0)

scalelabel= Scale(root, from_=0,to=10,orient=HORIZONTAL, length=400,


variable=questionNumber)
scalelabel.grid(row=1,column=0)

completeQuestionlabel= Label(root,text="10th question")


completeQuestionlabel.grid(row=1,column=1)

restartbutton = Button(root, text="Restart", font=("courier 10


pitch",20),command=restart)#no brackets cuz we dont have to call the function
automatically
restartbutton.grid(row=6,column=0)

print(question.get())

print(answer.get())
genrateQuestion()

root.mainloop()

You might also like