Spaces:
Build error
Build error
| 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 | |