티스토리 뷰

 

 

import random
from colorama import init, Fore, Back, Style
import webbrowser

init()

# 파일 읽기
file_path = 'C:\\Users\\USER\\Dropbox\\vscode project\\python sia quiz\\사자성어 퀴즈\\사자성어.txt' 

with open(file_path, 'r', encoding='utf-8') as file:
    lines = file.readlines() 

# 사자성어와 설명을 분리하여 저장
proverbs = {}
for line in lines:
    parts = line.strip().split(':')
    if len(parts) == 2:
        proverbs[parts[0].strip()] = parts[1].strip()

# 랜덤으로 사자성어 선택 및 퀴즈 생성
def create_quiz(proverbs, num_choices=5):
    correct_answer = random.choice(list(proverbs.keys()))
    choices = random.sample(list(proverbs.keys()), num_choices - 1)
    if correct_answer not in choices:
        choices.append(correct_answer)
    random.shuffle(choices)
    return proverbs[correct_answer], choices, correct_answer

# 퀴즈 생성 및 사용자에게 제시

score = 0
correct = True
print("[사자성어 퀴즈]")
hint = []

while ( correct):
    description, choices, correct_answer = create_quiz(proverbs)
    # 사용자에게 문제 제시
    print(f"\n설명: {description}")
    print("보기:")
    for i, choice in enumerate(choices, 1):
        print(f"{i}. {choice}")
        hint.append(choice)
        

    print(Style.RESET_ALL, end="")
    hint_num = int(input(Fore.BLUE + "몇 번 힌트를 원하시나요? (0-5), 0은 힌트 없음 : "))
    
    
    if(hint_num != 0):    
        url = f"https://hanja.dict.naver.com/#/search?query={hint[hint_num - 1]}&range=all"

        # Internet Explorer를 사용하여 URL 열기
        webbrowser.get('c:/program files/internet explorer/iexplore.exe %s').open(url)
    hint = []


    # 사용자 입력 받기 (이 환경에서는 실제 입력을 받을 수 없으므로 주석 처리)
    user_answer = input(Fore.YELLOW + "정답 번호를 입력하세요: ")
    print(Style.RESET_ALL, end="")

    # 정답 확인 (이 환경에서는 실제 입력을 받을 수 없으므로 예시 값 사용)
    correct = choices[int(user_answer) - 1] == correct_answer
    print(Fore.GREEN + "정답입니다!" if correct else Fore.GREEN + f"오답입니다. 정답은 {correct_answer}입니다.")
    print(Style.RESET_ALL, end="")
    
    if(correct):
        score += 1
    
print(Fore.RED + f"\n최종 스코어는 {score}점 입니다.")
[사자성어 퀴즈]

설명: 즐거운 일이 다하면 슬픈 일이 온다는 뜻.
보기:
1. 甘言利說(감언이설)
2. 內憂外患(내우외환)
3. 牽强附會(견강부회)
4. 竿頭之勢(간두지세)
5. 興盡悲來(흥진비래)
몇 번 힌트를 원하시나요? (0-5), 0은 힌트 없음 : 1
정답 번호를 입력하세요: 5
정답입니다!

설명: 푸른 나무 그늘과 꽃다운 풀. 곧, 여름의 자연 경치.
보기:
1. 命在頃刻(명재경각)
2. 望洋之嘆(망양지탄)
3. 綠陰芳草(녹음방초)
4. 結草報恩(결초보은)
5. 敬而遠之(경이원지)
몇 번 힌트를 원하시나요? (0-5), 0은 힌트 없음 :

728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함