본문 바로가기
코딩 공부/코드잇

코드잇 _ 숫자 맞히기 게임

by 밍망몽멍뭉 2021. 4. 1.

코드잇의 실습 문제 1. 

 

실습과제

1과 20 사이의 숫자를 맞히는 게임을 만들려고 합니다.

random 모듈과 input 함수를 활용하여 프로그램을 만들어 보세요.

진행 방식

  1. 프로그램을 실행하면 "기회가 *번 남았습니다. 1-20 사이의 숫자를 맞혀 보세요: "가 출력됩니다. 총 네 번의 기회가 주어지며, 사용자가 한 번 추측할 때마다 남은 기회 횟수가 줄어듭니다.
  2. 정답을 맞히면 "축하합니다. *번 만에 숫자를 맞히셨습니다."가 출력되고 프로그램은 종료됩니다.
  3. 사용자가 입력한 수가 정답보다 작은 경우 "Up"이 출력되고, 입력한 수가 정답보다 큰 경우 "Down"이 출력됩니다.
  4. 정답이 틀렸으면 1번부터 다시 진행합니다. 만약 네 번의 기회를 모두 사용했는데도 답을 맞히지 못했으면, "아쉽습니다. 정답은 *입니다."가 출력되고 프로그램은 종료됩니다.

시뮬레이션 #1

기회가 4번 남았습니다. 1-20 사이의 숫자를 맞혀보세요: 10 Up 기회가 3번 남았습니다. 1-20 사이의 숫자를 맞혀보세요: 15 Up 기회가 2번 남았습니다. 1-20 사이의 숫자를 맞혀보세요: 17 축하합니다. 3번만에 숫자를 맞히셨습니다.

시뮬레이션 #2

기회가 4번 남았습니다. 1-20 사이의 숫자를 맞혀보세요: 19 Down 기회가 3번 남았습니다. 1-20 사이의 숫자를 맞혀보세요: 14 Down 기회가 2번 남았습니다. 1-20 사이의 숫자를 맞혀보세요: 6 Up 기회가 1번 남았습니다. 1-20 사이의 숫자를 맞혀보세요: 10 UP 아쉽습니다. 정답은 12였습니다.

셀프 채점

다음 항목들이 제대로 구현되었는지 확인해 보세요!

 

"기회가 4번 남았습니다"부터 "기회가 1번 남았습니다"까지 기회가 줄어들면서 출력된다.

 

정답이 입력값보다 큰 경우 "Up", 작은 경우 "Down", 같은 경우 정답 메시지가 잘 출력되었는지 확인한다.

 

정답을 맞춘 경우, 몇 번만에 맞혔는지 출력한다.

 

4번의 기회를 모두 사용했는데도 답을 맞히지 못했으면 정답이 출력된다.

 

정답을 맞혔을 경우, "아쉽습니다"와 "축하합니다"가 동시에 출력되지 않는다.

 

 

 


import random

number = random.randint(1, 20)
chance = 4
cnt = 0

while True:
    num_input = int(input("기회가 {0}번 남았습니다. 1-20 사이의 숫자를 맞혀 보세요: ".format(chance)))
    
    if num_input == number:
        cnt += 1
        print("축하합니다. {0}번 만에 숫자를 맞히셨습니다.".format(cnt))
        break
    elif num_input > number:
        chance -= 1
        cnt += 1
        print("Down")
    else:
        chance -= 1
        cnt += 1
        print("Up")
    
    if cnt == 4:
        print("아쉽습니다. 정답은 {0}였습니다.".format(number))
        break