Post

숫자 맞추기 게임

Python의 Jupyter Notebook을 활용한 숫자 맞추기 게임

숫자 맞추기 게임 🎯

Python의 Jupyter Notebook을 활용한 숫자 맞추기 게임

📋 과제 목표

  1. Python을 사용한 기본 프로그래밍 실습.
  2. 랜덤 모듈반복문, 조건문을 활용한 간단한 게임 개발.
  3. 예외 처리와 사용자 입력 검증 학습.

⚙️ 기능 설명

주요 기능

  • 게임 시작 및 종료 메뉴:
    • “1. 게임시작”을 선택하면 숫자 맞추기 게임이 시작됩니다.
    • “2. 종료”를 선택하면 게임이 종료됩니다.
  • 랜덤 숫자 생성:
    • 컴퓨터가 1부터 10 사이의 숫자를 랜덤으로 선택합니다.
  • 힌트 제공:
    • 플레이어가 입력한 숫자가 컴퓨터 숫자보다 크면 “너가 적은 숫자가 더 큼.”이라고 출력합니다.
    • 작으면 “너가 적은 숫자가 더 작음”이라고 출력합니다.
  • 정답 확인:
    • 숫자를 맞히면 “******정답임******” 메시지가 출력되고 게임이 종료됩니다.

입력 검증 및 예외 처리

  1. 입력값 검증:
    • 입력한 숫자가 1과 10 사이가 아니면 경고 메시지를 출력합니다.
  2. 숫자 형식 예외 처리:
    • 입력값이 숫자가 아니면 예외를 처리하고 “숫자만 입력해야됨. 다시 입력하셈” 메시지를 출력합니다.

💻 실행 예제

메뉴 및 게임 진행

1
2
3
4
5
6
7
8
9
10
1. 게임시작
2. 종료
번호를 선택하셔유 > 1
컴퓨터가 1과 10 사이의 숫자 랜덤으로 정했음. 숫자 맞추셈
예상 숫자 적으셈: 5
너가 적은 숫자가 더 큼.
예상 숫자 적으셈: 3
너가 적은 숫자가 더 작음
예상 숫자 적으셈: 4
****************정답임****************

범위를 벗어난 입력 처리

1
2
예상 숫자 적으셈: 15
1과 10 사이의 숫자를 적으셈

숫자가 아닌 값 입력 처리

1
2
예상 숫자 적으셈: hello
숫자만 입력해야됨. 다시 입력하셈

종료

1
2
3
4
1. 게임시작
2. 종료
번호를 선택하셔유 > 2
게임 종료

🛠️ 주요 기술

  • 랜덤 숫자 생성: random.randint(1, 10) 사용.
  • 입출력 처리: input()print()로 사용자와 상호작용.
  • 예외 처리: try-except 블록으로 잘못된 입력 처리.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# random 모듈 사용하기
import random

# 게임 종료할 때까지 반복
while True:
    # 메뉴 출력하기
    print("1. 게임시작")
    print("2. 종료")
    # 메뉴 선택 input() 통해서 입력받기
    choice = input("번호를 선택하셔유 > ")

    # '1'을 선택한 경우 실행
    if choice == "1":
        # random.randint(1, 10) 이용해서 1과 10사이 숫자 랜덤 선택
        com = random.randint(1, 10)
        print("컴퓨터가 1과 10 사이의 숫자 랜덤으로 정했음. 숫자 맞추셈")

        # 게임 진행 반복문
        while True:
            try:
                # 숫자 입력시 int로 변환하기
                pl_num = int(input("예상 숫자 적으셈: "))
                # 입력한 숫자가 1과 10 사이인지 확인하기
                if 0< pl_num < 11:
                    # 입력한 값이 랜덤으로 적힌 수보다 클 경우
                    if pl_num > com:
                        print("너가 적은 숫자가 더 큼.")
                    # 입력한 값이 랜덤으로 적힌 수보다 작을 경우
                    elif pl_num < com:
                        print("너가 적은 숫자가 더 작음")
                    # 정답 맞췄을 경우
                    else:
                        print("****************정답임****************")
                        # 내부 반복문 종료(게임 진행 종료)
                        break
                # 숫자가 1과 10 사이가 아닌 경우 경고 메시지
                else:
                    print("1과 10 사이의 숫자를 적으셈")
            # 입력 값이 숫자가 아닌 경우 예외 처리
            except ValueError:
                print("숫자만 입력해야됨. 다시 입력하셈")
    # '2' 선택시 게임 종료
    elif choice == "2":
        print("게임 종료")
        break
    # 잘못된 번호를 선택한 경우
    else:
        print("제대로 된 번호 입력 하셈")
This post is licensed under CC BY 4.0 by the author.