import random
com = random.randint(1,20)
print('<<컴퓨터가 생각한 1~20 숫자 맞추기>>')
count = 0
while True:
player = int(input('숫자 입력(종료 0): '))
count = count +1
if player == 0:
break
elif player == com:
print('정답!!')
break
elif player > com:
print('더 작은 숫자 입력!')
elif player < com:
print('더 큰 숫자 입력!')
if count >= 5:
print('5번 시도 완료!')
break
결과)
<<컴퓨터가 생각한 1~20 숫자 맞추기>>
숫자 입력(종료 0): 10
더 작은 숫자 입력!
숫자 입력(종료 0): 5
더 작은 숫자 입력!
숫자 입력(종료 0): 3
더 큰 숫자 입력!
숫자 입력(종료 0): 4
정답!!
결과)
<<컴퓨터가 생각한 1~20 숫자 맞추기>>
숫자 입력(종료 0): 18
더 작은 숫자 입력!
숫자 입력(종료 0): 16
더 작은 숫자 입력!
숫자 입력(종료 0): 15
더 작은 숫자 입력!
숫자 입력(종료 0): 14
더 작은 숫자 입력!
숫자 입력(종료 0): 13
더 작은 숫자 입력!
5번 시도 완료!
파이썬 소스 및 결과 2개 입니다. 소스 설명)
주어진 파이썬 코드는 1부터 20까지의 숫자 중 컴퓨터가 무작위로 고른 숫자를 맞히는 게임 프로그램입니다. 플레이어는 숫자를 입력하며, 입력한 숫자가 정답인지, 더 큰지, 더 작은지에 대한 힌트를 얻을 수 있습니다. 또한, 시도 횟수가 5번을 넘으면 게임이 자동으로 종료됩니다.
코드 분석
- import random: 이 줄은 파이썬의 random 모듈을 가져옵니다. 이 모듈에는 난수(무작위 숫자)를 생성하는 기능이 포함되어 있어 게임에 필요한 컴퓨터의 숫자를 고르는 데 사용됩니다.
- com = random.randint(1,20): random.randint(1, 20) 함수는 1과 20을 포함한 1과 20 사이의 정수 중 하나를 무작위로 선택하고, 그 값을 com 변수에 할당합니다. 이 com 변수가 바로 플레이어가 맞춰야 할 정답 숫자가 됩니다.
- count = 0: count 변수는 플레이어가 숫자를 입력한 횟수를 세기 위해 사용됩니다. 게임이 시작될 때 0으로 초기화됩니다.
- while True:: 이 부분은 무한 루프를 시작합니다. while 문은 조건이 **참(True)**인 동안 계속해서 블록 안의 코드를 실행합니다. 이 게임에서는 플레이어가 정답을 맞히거나, '0'을 입력하여 종료하거나, 시도 횟수를 모두 소진하기 전까지 루프가 계속됩니다.
- player = int(input('숫자 입력(종료 0): ')): input() 함수를 통해 사용자로부터 숫자를 입력받습니다. 입력받은 값은 문자열 형태이므로, int() 함수를 사용하여 정수형으로 변환한 뒤 player 변수에 저장합니다.
- count = count + 1: 플레이어가 숫자를 입력할 때마다 count 변수를 1씩 증가시킵니다.
- if...elif...else 조건문:
- if player == 0:: 만약 플레이어가 0을 입력하면 break 문을 통해 무한 루프를 즉시 종료하고 게임을 끝냅니다.
- elif player == com:: 만약 플레이어가 입력한 숫자가 정답(com)과 같으면, "정답!!"을 출력하고 break를 통해 루프를 종료합니다.
- elif player > com:: 플레이어의 숫자가 정답보다 크면, "더 작은 숫자 입력!"이라는 힌트를 제공합니다.
- elif player < com:: 플레이어의 숫자가 정답보다 작으면, "더 큰 숫자 입력!"이라는 힌트를 제공합니다.
- if count >= 5:: 루프 내에서 매번 count 값을 확인하여, 만약 시도 횟수가 5번 이상이 되면 "5번 시도 완료!" 메시지를 출력하고 break를 통해 게임을 종료합니다.
실행 결과 분석
첫 번째 결과
- 컴퓨터 숫자: 4
- 진행: 플레이어가 10, 5, 3을 차례로 입력하며 "더 작은 숫자" 또는 "더 큰 숫자"라는 힌트를 얻습니다.
- 종료: 네 번째 시도에서 4를 입력하여 정답을 맞히고 게임이 종료되었습니다.
두 번째 결과
- 컴퓨터 숫자: 12 (추정)
- 진행: 플레이어가 18, 16, 15, 14, 13을 차례로 입력하며 계속해서 "더 작은 숫자 입력!"이라는 힌트를 받습니다.
- 종료: 다섯 번째 시도인 13을 입력한 후, count가 5가 되면서 if count >= 5: 조건이 참이 됩니다. 따라서 "5번 시도 완료!" 메시지가 출력되고 게임이 종료됩니다. 이 경우, 플레이어는 정답을 맞히지 못하고 게임이 끝났습니다.
참고)
앞에 있는 if, elif 문들이 끝난 후에 if count >= 5: 조건문이 동작합니다.
코드 실행 순서
while 루프 안의 코드는 매번 순차적으로 실행됩니다.
- 숫자 입력 및 count 증가: 플레이어가 숫자를 입력하고, count 변수가 1 증가합니다.
- 정답 및 힌트 확인:
- if player == 0:: 플레이어가 0을 입력했는지 확인합니다.
- elif player == com:: 정답인지 확인합니다.
- elif player > com:: 입력값이 더 큰지 확인합니다.
- elif player < com:: 입력값이 더 작은지 확인합니다. 이 조건문들 중 하나라도 참이면 해당 블록의 코드가 실행되고, 나머지 elif는 건너뜁니다.
- 시도 횟수 확인: 위의 if...elif 조건문들이 모두 처리된 후에 if count >= 5: 문이 실행됩니다. 이 시점에서 count는 이미 1 증가한 상태이므로, 5번째 시도부터 이 조건이 참이 되어 게임을 종료하게 됩니다.
따라서, count가 5가 되는 순간에도 플레이어가 정답을 맞히지 못했다면, 위에서 언급한 순서대로 힌트를 받고, 그 다음 줄에 있는 if count >= 5: 조건문이 실행되어 "5번 시도 완료!" 메시지를 출력하고 게임이 종료되는 것입니다.
'파이썬(Python)' 카테고리의 다른 글
| 파이썬, for문, if~else문 활용, 전체합계, 짝수의 합, 홀수의 합 소스 (0) | 2025.09.16 |
|---|---|
| 파이썬, 369게임, 3,6,9로 끝나는 숫자 "짝", 10의 배수는 "따봉" 소스 (1) | 2025.09.14 |
| 파이썬, 타자 연습게임 소스에서 맞힌 문제 개수와 정답률 출력 소스 (1) | 2025.09.13 |
| 파이썬, 타자연습 게임 소스 (0) | 2025.09.13 |
| 파이썬, 직각삼각형, 정삼각형, 역삼각형 별 모양 소스 (0) | 2025.09.13 |
콘텐츠 내 자동삽입광고
