Math_Quiz / app.py
FurqanIshaq's picture
Create app.py
e8537f4 verified
import gradio as gr
import random
def generate_question():
a = random.randint(1, 20)
b = random.randint(1, 20)
op = random.choice(["+", "-", "*"])
question = f"{a} {op} {b}"
answer = eval(question)
return question, answer
current_q, current_ans = generate_question()
def new_question():
global current_q, current_ans
current_q, current_ans = generate_question()
return current_q, ""
def check_answer(user_input):
try:
if int(user_input) == current_ans:
msg = "🎯 Correct!"
q, _ = new_question()
return q, msg
else:
return current_q, "❌ Wrong, try again!"
except:
return current_q, "⚠️ Please enter a number."
with gr.Blocks() as demo:
gr.Markdown("## ➗ Math Quiz Game")
question_box = gr.Textbox(value=current_q, interactive=False, label="Question")
answer_input = gr.Textbox(label="Your Answer")
result = gr.Textbox(interactive=False, label="Result")
submit_btn = gr.Button("Submit Answer")
new_btn = gr.Button("New Question")
submit_btn.click(fn=check_answer, inputs=answer_input, outputs=[question_box, result])
new_btn.click(fn=new_question, inputs=[], outputs=[question_box, result])
demo.launch()