앞의 구구단 프로그램에서 [정답 확인] 버튼을 클릭했을 때 check_answer() 함수가 실행되게 합니다. check_answer() 함수에서는 선택한 값이 정답이면 ‘정답입니다!’를, 정답이 아닐 때는 ‘다시 한번 풀어 보세요.’를 메시지박스로 표시합니다. 전체 코드를 작성해 봅시다.
from tkinter import *
from tkinter.ttk import *
from tkinter.messagebox import *
import random
# ----- 프로그램 기능 부분 -----
# 전역변수
num1, num2 = 0, 0
selection = [] # 전역변수로 위치 이동
def make_question():
global num1, num2
# 문제 만들기
num1, num2 = random.randint(2, 9), random.randint(1, 9)
question.set(str(num1) + 'x' + str(num2) + '? ')
# 선택지 만들기
for i in range(4):
selection.append(random.randint(2, 81))
idx = random.randint(0, 4)
selection.insert(idx, num1 * num2)
a_combo['values'] = selection
def check_answer():
if int(a_combo.get()) == num1 * num2:
showinfo(title='정답 확인!', message='정답입니다.')
else:
showerror(title='정답 확인!', message='다시 한번 풀어 보세요!')
# ----- 프로그램 화면 부분 -----
root = Tk()
root.title('구구단')
root.geometry('400x200')
question = StringVar()
q_lbl = Label(root, textvariable=question, width=30, anchor='center')
q_lbl.grid(row=0, column=0)
q_btn = Button(root, text='새로운 문제', width=10, command=make_question)
q_btn.grid(row=0, column=1)
a_combo = Combobox(root, values=selection, width=30)
a_combo.grid(row=1, column=0)
a_btn = Button(root, text='정답 확인', width=10, command=check_answer)
a_btn.grid(row=1, column=1)
root.mainloop()
실행결과