[1일 1파] 숫자 맞추기 게임 만들기 (Python 초보 프로젝트)

🎯 숫자 맞추기 게임 만들기 (Python 초보 프로젝트)

🤖 ChatGPT와 함께하는 Python 프로그래밍



오늘은 Python을 활용하여 컴퓨터가 랜덤으로 선택한 숫자를 맞추는 게임을 만들어볼 거예요!

 

물론 제가 아니고 ChatGPT에게 배우면 저도 함께 코딩을 흉내 내봅니다!😆

📌 목차

 

1️⃣ 프로그램 개요

이 프로그램은 컴퓨터가 1~100 사이의 랜덤 숫자를 생성하고, 사용자가 그 숫자를 맞출 때까지 계속 시도하는 게임입니다.

범위가 너무 넓으면 맞추는데 시간이 걸려요!

테스트 시에는 범위를 작게하고 이후 코드가 완성되면 넓은 범위도 도전해봐요. 

 

2️⃣ 개발 환경 설정

Python이 설치되어 있어야 합니다. 아래 링크를 참고하세요.

 

3️⃣ 랜덤 숫자 생성하기

Python에서 랜덤 숫자를 생성하려면 random.randint()를 사용하면 됩니다.

import random

number = random.randint(1, 100)
print("랜덤 숫자:", number)

 

 → 눈으로만 보지 말고 직접 입력해보세요.

      저도 아래처럼 하나씩 따라해 봅니다. 실행하면 임의의 숫자를 반환해요~

랜덤 숫자 기본기

 

4️⃣ 숫자 맞추기 게임 만들기 (Step-by-Step)

🛠 Step 1. 기본 구조 만들기

import random

secret_number = random.randint(1, 100)  # 1~100 사이 랜덤 숫자 생성
attempts = 0

while True:
    user_input = input("숫자를 입력하세요: ")

 

→ 실행하면 컴퓨터가 임의의 숫자를 생성하지만 보이지 않아요~ 그래서 맞출때까지? 눌러봅니다. 

랜덤 숫자 맞추기

 

결과는? 안될 것 같아서..중간에 멈췄어요 ;;

     테스트 범위를 좁혀서 해보세요! 

랜덤 숫자 맞추기

 

🛠 Step 2. 입력값이 숫자인지 확인

    if not user_input.isdigit():  # 숫자가 아닌 경우
        print("⚠ 숫자만 입력해주세요!")
        continue

    user_guess = int(user_input)  # 문자열을 숫자로 변환
    attempts += 1

 

→ 엉뚱한 걸 넣으면 안되겠죠? 숫자만 입력해주세요.

숫자만 입력하세요.

 

✅ 텍스트를 입력해 보았어요~ 바로 뭐라하네요! 😆

텍스트 입력시 경고

🛠 Step 3. 사용자가 입력한 숫자와 비교

    if user_guess < secret_number:
        print("📈 더 높은 숫자를 입력해보세요!")
    elif user_guess > secret_number:
        print("📉 더 낮은 숫자를 입력해보세요!")
    else:
        print(f"🎉 정답입니다! {attempts}번 만에 맞췄어요!")
        break

 

👍 업다운 게임 같이 이렇게 코드를 넣어봅니다. 안그러면... 숫자 범위가 넓어서 맞추기가 어려워요. 

     이제 위 코드를 넣고 최종 코드를 실행 보세요~~ 

🛠 Step 4. 전체 코드 제공

랜덤 숫자게임 전체코드

 

7️⃣ 초보자를 위한 FAQ

Q1. 'random' 모듈을 설치해야 하나요?

➡ 아니요! random은 기본 제공되므로 별도 설치 없이 사용 가능합니다.

8️⃣ 맺음말 및 발전 과제

오늘은 Python을 활용하여 랜덤 숫자를 생성하고, 사용자가 맞추는 숫자 맞추기 게임을 만들어봤어요! 🎯


이제 Python의 랜덤 함수, 조건문(if문), while 반복문, 사용자 입력 처리 등을 자연스럽게 익힐 수 있었을 거예요.

⚠ 발전 과제

  • 💡 난이도 조절: 숫자 범위를 1~100이 아니라 1~1000으로 확장하기
  • 💡 도전 횟수 제한: 10번 안에 정답을 맞추지 못하면 게임 종료
  • 💡 힌트 추가: 정답과 차이가 클수록 더 구체적인 힌트 제공
  • 💡 GUI 프로그램 만들기: Tkinter를 활용해 그래픽 인터페이스로 변환

 

🔗 이전 글 / 다음 글