Skip to content
파이썬
2023.10.04 23:33

파이썬 랜덤으로 문제풀기 #2

조회 수 77126 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

파이썬 랜덤으로 문제풀기 #2

이번에는 숫자를 입력하는 방식이 아닌 라디오버튼 선택 후 확인버튼을 눌러 정답을 맞추는 방식입니다.

 

 

 

 


import os
import random
from PIL import Image, ImageTk
import tkinter as tk
import pygame
 
# 이미지 폴더 경로
image_folder = r'E:\python\py_code\공\data\과학'
 
# 이미지 파일 목록 생성
image_files = [f for f in os.listdir(image_folder) if f.endswith('.png')]
 
# 하단 GUI 요소를 미리 생성
window = tk.Tk()
window.title("문제 맞추기 게임")
 
# 이미지 표시용 라벨
image_label = tk.Label(window)
image_label.pack(pady=10)
 
# 이미지와 선택 버튼을 포함하는 프레임 생성
frame = tk.Frame(window)
frame.pack()
 
question_label = tk.Label(frame, text="")
question_label.grid(row=0, column=0)
 
# 정답 선택을 위한 라디오 버튼 변수
selected_answer = tk.IntVar()
 
# 정답 선택 라디오 버튼 생성
for i in range(1, 6):
    answer_radio = tk.Radiobutton(frame, text=str(i), variable=selected_answer, value=i)
    answer_radio.grid(row=0, column=i, padx=5)
 
result_label = tk.Label(frame, text="")
result_label.grid(row=1, columnspan=6)
 
# Pygame 초기화 및 MP3 파일 경로 설정
pygame.init()
correct_sound = pygame.mixer.Sound(r'E:\python\py_code\공\ok.mp3')
incorrect_sound = pygame.mixer.Sound(r'E:\python\py_code\공\nono.mp3')
 
def play_correct_sound():
    correct_sound.play()
 
def play_incorrect_sound():
    incorrect_sound.play()
 
def show_random_question():
    # 랜덤하게 이미지 선택
    random_image = random.choice(image_files)
    image_path = os.path.join(image_folder, random_image)
   
    # 이미지 표시
    img = Image.open(image_path)
    img = img.resize((400, 400))
    img = ImageTk.PhotoImage(img)
    image_label.config(image=img)
    image_label.image = img
   
    # 정답 추출
    answer = int(random_image.split('-')[1].split('.')[0])
   
    # 사용자로부터 정답 입력 받기
    def check_answer():
        user_answer = selected_answer.get()
        if user_answer == answer:
            result_label.config(text="정답을 맞췄어요.")
            play_correct_sound()  # 정답 소리 재생
            show_random_question()
        else:
            result_label.config(text="다시 한번 풀어보세요.")
            play_incorrect_sound()  # 오답 소리 재생
   
    # 하단 GUI 업데이트
    selected_answer.set(0)
    result_label.config(text="")
   
    # 하단 GUI 생성
    question_label.config(text="이미지에 나타난 숫자는 무엇일까요?")
   
    # 확인 버튼 생성 (오른쪽에 위치)
    check_button = tk.Button(frame, text="확인", command=check_answer)
    check_button.grid(row=0, column=6)
 
# 초기 문제 표시
show_random_question()
 
# Tkinter 이벤트 루프 시작
window.mainloop()
 
# pygame 종료
pygame.mixer.quit()

 

로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
56 파이썬 파이썬 requestsbeautifulsoup 으로 웹 input에 입력값 대입한 뒤 결과값 파일로 저장하기 2023.11.13 64989
» 파이썬 파이썬 랜덤으로 문제풀기 #2 2023.10.04 77126
54 파이썬 파이썬 랜덤으로 시험문제 풀기 file 2023.10.04 73436
53 파이썬 파이썬에서 인식이 잘되는 OCR 종류 2023.09.15 77694
52 파이썬 한우경매낙찰 유튜브 영상의 이미지에서 특정 문자 가져와서 저장하기 2023.09.14 76986
51 파이썬 python AttributeError: 'WebDriver' object has no attribute 'find_element_by_css_selector' 해결방법 2023.05.07 47520
50 파이썬 DiffusionWrapper has 859.52 M params. 2023.04.21 37401
49 파이썬 파이썬으로 captCha 분석하여 웹사이트 소스 가져오기 2023.03.25 19045
48 파이썬 파이썬에서 captCha 분석 프로그램을 만들 수 있을까? 2023.03.25 11724
47 파이썬 웹 페이지에서 동적으로 생성되는 데이터 가져오는 방법 2023.03.15 6958
46 파이썬 네이버 주식의 기업정보와 펀더멘탈정보 소스 가져오기 2023.03.10 3366
45 파이썬 네이버 주식에서 종목의 투자정보 자료 가져오기 1 2023.03.10 2245
44 파이썬 파이썬 변수가 정의되었는지 여부 확인방법코드 2023.03.04 3988
43 파이썬 python class def 2023.03.04 2366
42 파이썬 파이썬 비활성화 된 창 활성화 시키기 2023.02.25 3552
41 파이썬 파이썬으로 비활성화 된 창의 이미지를 캡쳐하는 방법 2023.02.25 4004
40 파이썬 파이썬 비활성화 창 이미지 캡쳐하고 클릭하기 2023.02.24 4007
39 파이썬 파이썬 모듈 업그레이드 명령어 2023.02.21 3629
38 파이썬 파이썬 pyautogui 자주쓰는 이미지 서치 def 지정하기 2023.02.12 5253
37 파이썬 파이썬 pyautogui 화면에 여러개의 동일한 이미지가 있을 때 n번째 이미지 선택하기 2023.02.12 5002
Board Pagination Prev 1 2 3 Next
/ 3

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소