본문 바로가기
카테고리 없음

파이썬 미니 프로젝트: 숫자 맞추기 게임 만들기 (기초 활용편)

by chapter21 2025. 5. 16.
파이썬 미니 프로젝트: 숫자 맞추기 게임 만들기 (기초 활용편)
파이썬 미니 프로젝트: 숫자 맞추기 게임 만들기 (기초 활용편)

파이썬 미니 프로젝트: 숫자 맞추기 게임 만들기 (기초 활용편)

파이썬 기초 문법을 익히느라 수고 많으셨습니다! 이제 배운 내용들을 직접 활용하여 나만의 작은 프로그램을 만들어 볼 시간입니다. 이론만 배우는 것보다 실제로 코드를 작성하여 눈으로 결과를 보는 것이 실력 향상에 훨씬 도움이 됩니다.

이번 강의에서는 여러분이 지금까지 배운 입력, 조건문, 반복문, 함수 개념을 총동원하여 간단한 '숫자 맞추기 게임'을 만들어 볼 것입니다. 마치 레고 블록을 조립하여 멋진 구조물을 만들듯이, 파이썬 문법 블록들을 쌓아 하나의 프로그램을 완성해 봅시다!

어떤 미니 프로젝트를 만들까요?

우리가 만들 미니 프로젝트는 '숫자 맞추기 게임'입니다. 컴퓨터가 1부터 100 사이의 비밀 숫자를 하나 정하면, 사용자가 그 숫자를 맞출 때까지 계속 숫자를 입력하는 방식입니다. 컴퓨터는 사용자가 입력한 숫자가 비밀 숫자보다 큰지, 작은지 힌트를 줍니다.
이 게임은 input()으로 사용자에게 입력을 받고, if/elif/else로 입력된 숫자와 비밀 숫자를 비교하며, while 반복문으로 맞출 때까지 게임을 진행합니다. 또한, 컴퓨터가 비밀 숫자를 정하기 위해 random 모듈의 도움을 받을 것입니다.

단계 1: 컴퓨터가 비밀 숫자를 정하고, 사용자에게 입력 받기

먼저, 컴퓨터가 맞출 숫자를 정해야 합니다. 파이썬에서 무작위 숫자를 만들 때는 random 모듈을 사용합니다. 그리고 사용자에게 숫자를 입력받아 저장합니다. 사용자 입력은 항상 '글자(문자열)' 형태로 들어오므로, 숫자로 바꾸는 과정이 필요합니다.

Python
import random # 무작위 숫자를 사용하기 위해 random 모듈을 불러옵니다. # 1부터 100 사이의 비밀 숫자를 정합니다. secret_number = random.randint(1, 100) # 게임 시작 안내 메시지를 출력합니다. print("1부터 100 사이의 숫자를 맞춰보세요!") # 사용자로부터 숫자를 입력받습니다. guess_str = input("숫자를 입력하세요: ") # 입력받은 글자(문자열)를 숫자(정수)로 바꿉니다. guess = int(guess_str) # 현재 상태를 확인하기 위해 임시로 입력받은 숫자와 비밀 숫자를 출력해봅니다. print(f"당신이 입력한 숫자: {guess}, 비밀 숫자: {secret_number}") # f-string은 값을 쉽게 출력하는 방법입니다.

위 코드를 실행하면 다음과 같은 결과가 나타납니다 (비밀 숫자는 실행할 때마다 달라집니다).

출력 결과 예시
1부터 100 사이의 숫자를 맞춰보세요!
숫자를 입력하세요: 50
당신이 입력한 숫자: 50, 비밀 숫자: 73

단계 2: 사용자가 입력한 숫자와 비밀 숫자 비교하기

이제 사용자가 입력한 숫자(guess)와 컴퓨터의 비밀 숫자(secret_number)를 비교하여 힌트를 줘야 합니다. 이때 if, elif, else 조건문을 사용합니다.

Python
# secret_number와 guess 변수는 이미 있다고 가정합니다. # 단계 1 코드에 아래 내용을 추가하면 됩니다. if guess == secret_number: # 입력한 숫자와 비밀 숫자가 같으면 print("정답입니다! 숫자를 맞췄어요!") elif guess > secret_number: # 입력한 숫자가 비밀 숫자보다 크면 print("숫자가 너무 커요!") else: # 입력한 숫자가 비밀 숫자보다 작으면 print("숫자가 너무 작아요!")

이 코드를 실행하면 입력한 숫자에 따라 "정답입니다!", "숫자가 너무 커요!", "숫자가 너무 작아요!" 중 하나의 메시지가 출력됩니다. 아직 한 번만 기회가 주어지지만, 핵심 비교 로직이 완성되었습니다.

출력 결과 예시 (숫자 50 입력, 비밀 숫자 73일 때)
숫자가 너무 작아요!

단계 3: 숫자를 맞출 때까지 게임 반복하기

게임은 사용자가 숫자를 맞출 때까지 계속되어야 합니다. 이때 필요한 것이 바로 while 반복문입니다. 사용자가 숫자를 맞추면 반복을 멈추도록 조건을 설정합니다.
그리고 시도 횟수를 세는 기능도 추가하여 게임이 끝날 때 몇 번 만에 맞췄는지 알려주면 더 좋겠죠?

Python
import random secret_number = random.randint(1, 100) print("1부터 100 사이의 숫자를 맞춰보세요!") # 시도 횟수를 기록할 변수를 만들고 0으로 초기화합니다. tries = 0 # 사용자가 정답을 맞췄는지 확인하는 변수 (처음엔 못 맞췄으니 False) is_guessed = False # is_guessed가 False인 동안 (즉, 아직 못 맞췄으면) 계속 반복합니다. while not is_guessed: guess_str = input("숫자를 입력하세요: ") # 시도 횟수를 1 증가시킵니다. tries = tries + 1 # 입력받은 글자(문자열)를 숫자(정수)로 바꿉니다. # **주의: 숫자가 아닌 것을 입력하면 오류가 발생합니다.** guess = int(guess_str) # 비밀 숫자와 비교합니다. if guess == secret_number: print(f"정답입니다! {tries}번 만에 맞췄어요!") is_guessed = True # 맞췄으니 is_guessed를 True로 바꿔 반복을 멈추게 합니다. elif guess > secret_number: print("숫자가 너무 커요!") else: print("숫자가 너무 작아요!") print("게임이 종료되었습니다.") # 반복문이 끝나면 이 메시지가 출력됩니다.

위 코드를 실행하면 이제 사용자가 숫자를 맞출 때까지 계속해서 입력을 받고 힌트를 제공하는 완벽한 '숫자 맞추기 게임'이 됩니다!

출력 결과 예시
1부터 100 사이의 숫자를 맞춰보세요!
숫자를 입력하세요: 50
숫자가 너무 작아요!
숫자를 입력하세요: 75
숫자가 너무 커요!
숫자를 입력하세요: 63
정답입니다! 3번 만에 맞췄어요!
게임이 종료되었습니다.

핵심 : 미니 프로젝트는 배운 문법(입력, 조건문, 반복문)을 조합하여 하나의 목표를 달성하는 과정입니다. 각 문법이 프로그램 안에서 어떤 역할을 하는지 직접 경험하며 익히는 것이 중요합니다.

주의:

사용자 입력(input())은 항상 문자열이므로, 숫자로 계산하거나 비교하려면 반드시 int() 함수 등으로 숫자로 변환해야 합니다. 만약 사용자가 숫자가 아닌 글자를 입력하면 ValueError 오류가 발생할 수 있습니다. 더 발전된 프로그램에서는 이런 오류를 처리하는 방법도 배워야 합니다.

마무리하며

축하합니다! 파이썬 기초 문법을 활용하여 나만의 '숫자 맞추기 게임' 미니 프로젝트를 완성했습니다. 이 게임 안에는 입력, 조건문, 반복문 등 지금까지 배운 핵심 개념들이 모두 녹아 있습니다.

이처럼 작은 프로젝트를 만들어보는 경험은 앞으로 더 크고 복잡한 프로그램을 만들 수 있다는 자신감을 심어줄 것입니다. 이 게임에 기능을 더 추가하거나 (예: 시도 횟수 제한, 게임 재시작 기능), 다른 간단한 게임(가위바위보 등)이나 프로그램을 직접 구상하고 만들어보세요! 이것이 바로 코딩 실력을 키우는 가장 좋은 방법입니다.

직접 코드를 실행해보시고, 궁금한 점이 있다면 언제든지 댓글로 질문을 남겨주세요.

이로써 파이썬 기초 강좌의 실습/프로젝트 과정을 마칩니다. 다음 단계는 더욱 심화된 내용을 배우거나, 다른 분야(웹 개발, 데이터 분석 등)로 나아가는 것이 될 수 있습니다. 즐겁게 코딩하시길 바랍니다!