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] 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 |