상세 컨텐츠

본문 제목

[Python] 숫자 맞추기 게임 (사용자)

Python 예제

by D.119 2024. 3. 16. 22:41

본문

https://www.youtube.com/watch?v=8ext9G7xspg&t=797s

Kylie Ying의 튜토리얼에서  이번에는 (컴퓨터)가 (사용자)가 정한 숫자 맞추기 게임입니다.

↓ ↓ ↓

import random

def guess(x):
  random_number = random.randint(1, x)
  guess = 0
  while guess != random_number:
    guess = int(input(f'1과 {x}사이의 숫자를 추측하십시오: '))
    if guess < random_number:
      print('미안해요, 다시 맞춰봐요. 너무 낮아요.')
    elif guess > random_number:
      print('미안해요, 다시 맞춰봐요. 너무 높아요.')

  print(f'축하해요. 숫자 {random_number} 정확하게 맞히셨어요!!')

↓ ↓ ↓

[random] 라이브러리 임포트:

import random

random 모듈을 임포트 합니다. 이 모듈은 난수를 생성하는 데 사용됩니다.

↓ ↓ ↓

사용자 추측 함수 정의:

def guess(x):
  random_number = random.randint(1, x)
  guess = 0
  while guess != random_number:
    guess = int(input(f'1과 {x}사이의 숫자를 추측하십시오: '))
    if guess < random_number:
      print('미안해요, 다시 맞춰봐요. 너무 낮아요.')
    elif guess > random_number:
      print('미안해요, 다시 맞춰봐요. 너무 높아요.')
  print(f'축하해요. 숫자 {random_number} 정확하게 맞히셨어요!!')

이 함수는 사용자가 1과 x 사이의 숫자를 맞추도록 요청합니다.

사용자의 추측이 정답보다 낮거나 높을 경우 힌트를 제공합니다.

맞출 때까지 반복하며, 맞추면 축하 메시지를 출력합니다.

↓ ↓ ↓

def computer_guess(x):
    low = 1
    high = x
    feedback = ''
    while feedback != 'c':
        if low != high:
           guess = random.randint(low, high)
        else:
           guess = low # could also be high b/c low = high
        feedback = input(f'{guess}이(가) 너무 높습니다. (H), 너무 낮습니다. (L), 맞췄습니다!! (C): ').lower()
        if feedback == 'h':
           high = guess - 1
        elif feedback == 'l':
           low = guess + 1
    
    print(f'축하해요. 숫자 {guess} 정확하게 맞히셨어요!!')


computer_guess(10)

↓ ↓ ↓

함수 정의 및 초기 변수 설정:

def computer_guess(x):
    low = 1
    high = x
    feedback = ''

→ computer_guess(x) 함수는 매개변수 x를 받아서,

1부터 x까지의 숫자 중 사용자가 생각한 숫자를 컴퓨터가 맞추는 로직을 실행합니다.

→ low와 high 변수는 추측해야 하는 숫자의 범위를 정의합니다.

초기값으로 low는 1, high는 x로 설정합니다.

→ feedback 변수는 사용자의 피드백을 저장하는 데 사용되며, 초기값은 빈 문자열입니다.

↓ ↓ ↓

숫자 추측 로직:

    while feedback != 'c':
        if low != high:
           guess = random.randint(low, high)
        else:
           guess = low # could also be high because low = high
        feedback = input(f'{guess}이(가) 너무 높습니다. (H), 너무 낮습니다. (L), 맞췄습니다!! (C): ').lower()
        if feedback == 'h':
           high = guess - 1
        elif feedback == 'l':
           low = guess + 1

→ 이 부분은 feedback이 'c'(맞췄습니다!!)가 될 때까지 반복되는 주요 게임 로직입니다.

→ low와 high가 같지 않을 경우, random.randint(low, high)를 사용해 해당 범위 내에서

임의의 숫자를 추측합니다. 만약 low와 high가 같다면, 그 숫자가 정답입니다.

→ 사용자는 컴퓨터가 제시한 숫자에 대해 너무 높은지(H), 너무 낮은지(L),

아니면 맞췄는지(C)를 입력합니다. 입력은 소문자로 변환합니다.

→ 사용자의 피드백에 따라 high 또는 low의 값을 조정하여 추측 범위를 좁혀갑니다.

↓ ↓ ↓

정답 맞추기 및 축하 메시지 출력:

print(f'축하해요. 숫자 {guess} 정확하게 맞히셨어요!!')

사용자가 'c'를 입력하여 정답을 맞혔음을 알리면, 반복문이 종료되고 컴퓨터가 사용자가 생각한

숫자를 정확히 맞췄다는 축하 메시지를 출력합니다.

↓ ↓ ↓

함수 호출:

computer_guess(10)

→ computer_guess 함수를 호출하며, 이 예시에서는 x의 값으로 10을 사용합니다.따라서 컴퓨터는 1부터 10 사이의 숫자 중 사용자가 생각한 숫자를 맞추게 됩니다.

↓ ↓ ↓

코드 실행 결괏값

'Python 예제' 카테고리의 다른 글

[Python] QR 코드 디코더  (0) 2024.03.17
[Python] QR 코드 인코더  (0) 2024.03.17
[Python] 비밀번호 생성기  (2) 2024.03.16
[Python] 숫자 맞추기 게임 (컴퓨터)  (0) 2024.03.16
[Python] 매드 립스(Mad Libs)  (0) 2024.03.16

관련글 더보기