본문 바로가기

Python

[Python] Up Down 게임

파이썬으로도 Up Down 게임을 만들어봐야겠죠?

함수를 사용해서 만들어보도록 하겠습니다.

정답은 1~100사이의 숫자로 설정하였습니다.

 

# 유저의 이름을 입력받고 환영하는 인사를 출력
def getName():
    name = input("이름을 입력하세요")
    print(name + "님 환영합니다!")

 

먼저 게임을 시작하면

유저의 이름을 입력받고 환영 문구를 출력합니다.

 

# (컴퓨터) 1 ~ 100사이의 랜덤한 정수를 하나 뽑아서
def getRandomNumber():
    randomNumber = random.randint(1,100)
    return randomNumber

 

그리고 1~100사이에 랜덤한 정수를 추출해서

정답을 생성하는 함수를 만들었습니다.

 

# 유저에게 정답을 입력하게했을 때
# 범위 내의 숫자가 아니면 다시입력하도록

def getAnswer():
    answer = int(input("숫자를 입력하세요"))
    if(not(1 <= answer <= 100)):
        getAnswer()
    return answer

 

그리고 정답을 입력받는 함수인데

1에서 100사이의 정수가 아니면

정답을 다시 입력받도록 하였습니다.

1에서 100사이 숫자이면

정답을 리턴합니다.

 

# 입력한 숫자가 정답보다 작으면 'UP' / 크면 'DOWN' 출력

def judgeUpDown():
    count = 0
   
    computerAnswer = getRandomNumber()
    while True:
        answer = getAnswer()
        if(answer < computerAnswer):
            print("UP!")
            count+=1
        elif(answer > computerAnswer):
            print("DOWN!")
            count+=1
        if(count == 10): # 정답 기회는 총 10번
            print("정답기회 소진😥")
            break
        elif(answer == computerAnswer):
            print("축하드립니다 정답입니다!")
            print("시도횟수 : %d" %count )
   
            break
    # 정답을 맞췄을 때는 몇 번만에 맞췄는지 출력 + 종료    
    print(computerAnswer)
   
    print("축하드립니다 정답입니다!")          
     

getName()
judgeUpDown()

 

마지막으로 정답을 판단하는 함수입니다.

 

while문으로 무한 반복을 돌리고

정답을 하나 생성하고

사용자에게 정답을 입력받아서

정답보다 사용자 정답이 낮으면 UP!

높으면 DOWN!을 출력하고

count를 1씩 증가시켜서

count가 10이되거나

사용자 정답과 생성한 정답이 서로 같을 때

게임을 종료하도록 하였습니다.

이러면 getName, judgeUpDown 2개의 함수만 실행하면 

게임이 진행되겠네요.

 

이름을 입력하세요김래현
김래현님 환영합니다!
숫자를 입력하세요60
UP!
숫자를 입력하세요70
UP!
숫자를 입력하세요80
UP!
숫자를 입력하세요90
DOWN!
숫자를 입력하세요86
DOWN!
숫자를 입력하세요84
DOWN!
숫자를 입력하세요83
축하드립니다 정답입니다!
시도횟수 : 6
83
축하드립니다 정답입니다!

 

마지막 줄에 있는 print문은 제거해야겠네요.

파이썬 코드를 활용한 실습이었습니다!

'Python' 카테고리의 다른 글

[Python] 상속과 오버라이딩  (0) 2025.03.06
[Python] Class  (0) 2025.03.05
[Python] 로또 번호 뽑기  (0) 2025.03.05
[Python] 함수  (0) 2025.03.04
[Python] 반복문  (0) 2025.03.04