Initial commit

This commit is contained in:
arhat0307
2026-06-26 00:06:07 +09:00
commit 75f9c5d7d4
108 changed files with 10256 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
package main
import (
"fmt"
"strings"
)
func buildQuestions(config ExamConfig) []Question {
topics := config.Topics
if len(topics) == 0 {
topics = []string{"일상생활", "여가"}
}
topic := func(i int) string { return topics[i%len(topics)] }
q := []Question{
{1, "Introduction", "자기소개", "Let's begin the interview. Please tell me about yourself in detail.", "Warm-up and spontaneous self-introduction"},
{2, "Description", topic(0), fmt.Sprintf("You selected %s in your survey. Please describe it in as much detail as possible.", englishTopic(topic(0))), "Describe a familiar subject"},
{3, "Routine", topic(0), fmt.Sprintf("What do you usually do related to %s? Walk me through a typical experience from beginning to end.", englishTopic(topic(0))), "Explain routine with sequence"},
{4, "Past experience", topic(0), fmt.Sprintf("Tell me about a memorable experience you had with %s. What happened, and why do you remember it?", englishTopic(topic(0))), "Narrate a past event"},
{5, "Description", topic(1), fmt.Sprintf("Now let's talk about %s. Describe the place, people, or activities involved.", englishTopic(topic(1))), "Give vivid details"},
{6, "Comparison", topic(1), fmt.Sprintf("How has %s changed compared with the past? Give specific examples.", englishTopic(topic(1))), "Compare past and present"},
{7, "Problem", topic(1), fmt.Sprintf("Tell me about a problem you experienced while doing something related to %s. How did you solve it?", englishTopic(topic(1))), "Explain a problem and resolution"},
{8, "Role-play", topic(0), fmt.Sprintf("Imagine you need information about %s. Call the place and ask three or four questions.", englishTopic(topic(0))), "Ask relevant questions"},
{9, "Role-play", topic(0), "I'm sorry, but there is a problem with your reservation. Explain the problem and offer two or three alternatives.", "Handle an unexpected situation"},
{10, "Role-play follow-up", topic(0), "Tell me about a real experience when a plan changed unexpectedly. What did you do?", "Connect role-play to personal experience"},
{11, "Unexpected", "기술", "Many people use AI and mobile apps every day. How have these technologies changed the way people study or work?", "Give an opinion with examples"},
{12, "Unexpected", "환경", "What environmental issue is important in your community? Explain its causes and possible solutions.", "Discuss a social issue"},
{13, "Advanced comparison", topic(0), fmt.Sprintf("Compare two different ways people can enjoy %s. What are the advantages and disadvantages of each?", englishTopic(topic(0))), "Develop a balanced comparison"},
{14, "Opinion", topic(1), fmt.Sprintf("Some people say spending time on %s is essential for a good life. Do you agree or disagree? Why?", englishTopic(topic(1))), "Support a clear opinion"},
{15, "Closing challenge", topic(0), fmt.Sprintf("Choose the most interesting change you expect in %s over the next ten years. Explain your prediction in detail.", englishTopic(topic(0))), "Make and support a prediction"},
}
return adaptDifficulty(q, config.Difficulty)
}
func adaptDifficulty(questions []Question, difficulty string) []Question {
if strings.EqualFold(difficulty, "Novice") || strings.EqualFold(difficulty, "IM1") {
for i := range questions {
questions[i].Text += " You may use simple sentences and concrete examples."
}
}
if strings.EqualFold(difficulty, "AL") {
for i := range questions {
questions[i].Text += " Include multiple perspectives, specific evidence, and a clear conclusion."
}
}
return questions
}
func englishTopic(topic string) string {
m := map[string]string{
"집": "your home", "가족": "your family", "직장": "your work",
"학교": "school life", "영화": "movies", "음악": "music",
"운동": "exercise", "여행": "travel", "카페": "cafes",
"요리": "cooking", "게임": "games", "쇼핑": "shopping",
"공원": "parks", "일상생활": "your daily life", "여가": "your free time",
}
if value, ok := m[topic]; ok {
return value
}
return topic
}