EasyPython / app.py
keerthuAi's picture
Update app.py
1ba70c1 verified
Raw
History Blame
1.62 kB
import gradio as gr
import random
# 🧠 Sample questions for kids
questions = [
{
"code": 'print("Hello" + "World")',
"options": ["HelloWorld", "Hello World", "Hello+World"],
"answer": "HelloWorld",
"hint": "What happens when you add two strings?"
},
{
"code": 'print(2 * 3)',
"options": ["6", "23", "5"],
"answer": "6",
"hint": "Multiplication or joining?"
},
{
"code": 'x = 5\nprint(x + 2)',
"options": ["7", "52", "2"],
"answer": "7",
"hint": "What is 5 + 2?"
}
]
# πŸ” Track state
score = 0
question_index = 0
history = []
def get_current_question():
return questions[question_index]
def show_question():
q = get_current_question()
return q["code"], gr.update(choices=q["options"]), "", f"⭐ Score: {score}"
def check_answer(choice):
global score
correct = get_current_question()["answer"]
result = ""
if choice == correct:
result = "βœ… Correct! Great job!"
score_msg = f"⭐ Score: {score + 1}"
score += 1
else:
result = f"❌ Oops! The correct answer was: {correct}"
score_msg = f"⭐ Score: {score}"
return result, score_msg
def skip_question():
next_q()
return show_question()
def get_hint():
return f"πŸ’‘ Hint: {get_current_question()['hint']}"
def next_q():
global question_index
history.append(question_index)
question_index = (question_index + 1) % len(questions)
def prev_q():
global question_index
if history:
question_index = history.pop()
return