[Python]_숫자 맞히기 게임

hanseungjune·2022년 6월 11일
0

Python

목록 보기
25/38

풀이

import random

# 코드를 작성하세요.
ANSWER = random.randint(1, 20)
NUM_TRIES = 4

# 변수 정의
guess = -1
tries = 0

while guess != ANSWER and tries < NUM_TRIES:
    guess = int(input("기회가 {0}번 남았습니다. 1-20 사이의 숫자를 맞혀 보세요: ".format(NUM_TRIES - tries)))
    tries += 1

    if ANSWER > guess:
        print("Up")
    elif ANSWER < guess:
        print("Down")

if guess == ANSWER:
    print("축하합니다. {0}번 만에 숫자를 맞히셨습니다.".format(tries))
else:
    print("아쉽습니다. 정답은 {0}입니다.".format(ANSWER))

오답문제 : 일단 풀지 못했다. 모범답안을 가져왔는데, 내가 무슨 생각을 했길래 풀지 못했는가를 분석해보았다. 원인은 다음과 같다.

input()를 출력하려면 꼭 print를 해야하는 줄 알았다.

guess 라는 변수에 input()을 넣기만 해도 된다는 걸 알게됨

while 문의 조건을 tries < NUM_TRIES 만 했다.

그래서 답을 맞춰도 횟수만 차감되는 현상이 발생하였다. 일단 while의 조건이 true가 발생하면 계속 반복된다. 그래서 guess != ANSWER 하여, 틀리면 True가 나오게 하였다. 정답을 맞추거나, 시도 횟수가 최대 가능 횟수를 초과하면 False가 나오게끔 설정하여 반복문을 탈출하게 한다!

정답을 맞출 경우에 나오는 문장을 출력하는 것을 반복문 안에서 해결하려고 했다.

이게 가능은 할 수 있는데, 생각해보니 while문에서 정답을 맞추거나, 횟수를 초과하면 알아서 빠져나온다. 그리고 조건문으로 정답을 맞췄다면, 축하합니다 , 횟수를 초과했다면 아쉽습니다 를 나오게 했어도 괜찮았던 것이다. 내가 너무 생각의 여유가 없었다고 생각한다.

profile
필요하다면 공부하는 개발자, 한승준

0개의 댓글