import gradio as gr # The story "The Cave of Whispers" with blanks for cloze questions story = "https://raw.githubusercontent.com/MK316/Spring2024/main/DLEE/Project/story05.txt" # Cloze questions cloze_questions = [ {"question": "1. 역사에 깊은 관심을 가지고 있던 미아는 나중에 연구해 보려고 여러 장의 사진을 찍었습니다. ------------------------------------------------------------------------------------------------------------------------- [Mia,] [a keen interest in history,] [had] [took several photos,] [who] [hoping to research them later.]", "answer": "Mia, who had a keen interest in history, took several photos, hoping to research them later."}, {"question": "2. 갑자기 앞장서던 제이크가 멈췄습니다. -------------------------------------------------------------------- [Suddenly, Jake,] [halted.] [who] [was leading,]", "answer": "Suddenly, Jake, who was leading, halted."}, {"question": "3. 모험을 추구하는 사람들에게, 진정한 보물은 금이 아닌 여정과 그 과정에서 맺어진 우정에 있습니다. ---------------------------------------------------------------------------------------------------------------- [those] [To] [seek adventure,] [who] [true treasure lies not in gold but in the journey and the friendships forged along the way.]", "answer": "To those who seek adventure, true treasure lies not in gold but in the journey and the friendships forged along the way."} ] # Function to handle the cloze quiz def cloze_quiz(name, *answers): score = 0 incorrect_questions = [] for i, question in enumerate(cloze_questions): if answers[i].strip().lower() == question["answer"].lower(): score += 1 else: incorrect_questions.append(f"Question {i+1}") incorrect_questions_text = ", ".join(incorrect_questions) result_text = f"* Name: {name}\n* Score: {score} out of {len(cloze_questions)}\n" if incorrect_questions: result_text += f"Incorrect questions: {incorrect_questions_text}" else: result_text += "All answers are correct!" return result_text # Add the input for the name inputs = [gr.Textbox(label="Enter your name")] + [gr.Textbox(label=q["question"], lines=4) for q in cloze_questions] outputs = [gr.Textbox(label="Results")] # Adding the instruction in the description with larger and bolder text instruction = """ [Assignment (Due by 6/12)]
Step 1. Enter your name.
Step 2. Arrange the following word and phrase fragments in the correct order.
Step 3. Type a complete sentence.
Step 4. Click the submit button and check your score. (If your answers are incorrect, try again.)
Step 5. Capture the screen showing the result and upload it to Padlet. """ iface = gr.Interface(fn=cloze_quiz, inputs=inputs, outputs=outputs, description=instruction) iface.launch(share=True)