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