*본 코드는 pc(윈도)에서도 작동합니다.
[목표] 컴퓨터가 만들어낸 무작위 숫자를 맞추는 게임을 만들어보자
지금까지 배운 내용과 몇 가지 새로운 내용을 추가하여 간단한 프로그램을 만들어 보겠습니다.
우리가 만들 프로그램은 컴퓨터가 만들어낸 무작위 숫자를 맞추는 게임입니다.
프로그램의 동작에 관해서는 아래 자세히 설명하겠습니다.
0. 프로그램 계획하기
1) 사용할 위젯(요소) : 레이블, 엔트리, 버튼
2) 기타 필요한 지식 : 함수 만들기(정의) 방법
3) 새로운 지식 : 무작위 숫자 만들어내기(random 라이브러리 사용으로 간단히 해결)
4) 프로그래밍 순서 : 창 만들기 -> 위젯 채우기 -> 함수 만들기 -> 프로그램 테스트 -> 실행 파일 만들기
1. 창 만들기
창은 우리 프로그램을 담는 틀에 해당합니다.
다음 코드를 실행하여 그림과 같이 창을 만듭니다.
from tkinter import * root = Tk() root.title("숫자 맞히기") root.geometry("350x250") root.mainloop() |
2. 위젯 채우기
창 위에 레이블, 엔트리, 버튼 세 가지 요소를 채워 넣습니다.
이제껏 요소라 불렀지만, 이들을 부르는 정식 명칭은 위젯입니다.
위젯이란?
위젯은 사용자가 프로그램과 소통하기 위한 도구입니다.
예를 들면 사용자는 레이블을 통해 아이디, 비번과 같은 항목을 입력합니다.
버튼은 사용자가 결정한 항목을 클릭하는 용도로 사용합니다.
정리합니다. 위젯은 사용자와 프로그램이 상호작용하는 도구입니다. 위젯은 주로 창 위에 표시됩니다.
다음과 같이 음영 표시된 코드를 추가하세요. 그림과 같이 세 가지 위젯이 표시됩니다.
--- 코드 생략--- root.geometry("350x250") label = Label(root, text="1~50 사이의 숫자를 입력하세요.") label.pack() entry = Entry(root) entry.pack() button = Button(root, text="입력", command=guess) button.pack() root.mainloop() |
우리가 만들 프로그램의 GUI는 위 그림과 같습니다.
배운 내용을 최소한 사용하다보니 모양새가 조악합니다.
이는 배움이 진행될 수록 개선될 문제입니다. 학습내용을 복습하고 활용하는 데 초점을 맞춰주세요.
3. 함수 만들기
입력 버튼을 클릭 시 동작할 함수를 정의하겠습니다.
함수 정의를 위해 프로그램의 동작 순서를 알아야 합니다.
프로그램은 다음과 같은 순서로 동작합니다.
컴퓨터가 1부터 50사이의 숫자 하나를 생성합니다.
플레이어는 정답이라 추측한 숫자를 입력합니다. 그리고 "입력" 버튼을 클릭합니다.
만약 플레이어가 추측한 숫자가 정답이라면 "축하합니다"와 같은 메시지를 표시합니다.
만약 정답이 아니라면 플레이어가 입력한 숫자가 정답보다 크거나 작다는 사실을 알려줍니다.
그리고 정답을 맞출 때 까지 플레이(정답 추측)가 반복됩니다.
동작 과정이 많이 복잡하지는 않지요?
완성된 코드는 다음과 같습니다. (음영 표시된 코드가 새롭게 추가되었습니다.)
from tkinter import * import random c_number = random.randint(1,50) count=0 root = Tk() root.title("숫자 맞히기") root.geometry("350x250") label = Label(root, text="1~50 사이의 숫자를 입력하세요.") label.pack() entry = Entry(root) entry.pack() def guess(): g_number = int(entry.get()) global count count = count+1 if c_number != g_number: if g_number > c_number: label.config(text="%d회 시도:더 작은 수 입력."%count) else: label.config(text="%d회 시도:더 큰 수 입력."%count) else: label.config(text="정답입니다.!!!") button = Button(root, text="입력", command=guess) button.pack() root.mainloop() |
*코드에 대한 설명은 따로 추가할게요
'코딩 > 파이썬 활용 프로젝트' 카테고리의 다른 글
데이터 분석_1 : 어떤 문제를 다룰 것인가?(문제 정의) (0) | 2023.09.19 |
---|---|
파이썬 GUI_8-2 : 미니 프로젝트_ 숫자 맞히기 게임 코드 설명 (0) | 2023.01.16 |
파이썬 GUI_7_리스트 박스 항목 삭제 (0) | 2022.12.07 |
파이썬 GUI_6_리스트 박스 항목 추가 (0) | 2022.12.07 |
파이썬 GUI_5_엔트리_버튼 클릭 시 입력 문자열 가져오기 (2) | 2022.12.07 |
댓글