File size: 3,171 Bytes
1f643b1
 
888770c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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 = """
<b><span style='font-size: 20px;'>[Assignment (Due by 6/12)]</span></b><br>
<b><span style='font-size: 16px;'>Step 1. Enter your name.</span></b><br>
<b><span style='font-size: 16px;'>Step 2. Arrange the following word and phrase fragments in the correct order.</span></b><br>
<b><span style='font-size: 16px;'>Step 3. Type a complete sentence.</span></b><br>
<b><span style='font-size: 16px;'>Step 4. Click the submit button and check your score. (If your answers are incorrect, try again.)</span></b><br>
<b><span style='font-size: 16px;'>Step 5. Capture the screen showing the result and upload it to Padlet.</span></b>
"""

iface = gr.Interface(fn=cloze_quiz, inputs=inputs, outputs=outputs, description=instruction)
iface.launch(share=True)