소연의_개발일지
article thumbnail

사용한 함수: while, for, if, random, isdigit

 

 

UP & DOWN 게임 만들기

 

제작한 코드

# for문으로 스무고개 만들기
import random
import os
game_end = 'n'
wrong_number = 'y'
user_win = 'y'
while game_end != 'y':
    # TODO 0. 1부터 100까지 랜덤으로 숫자를 뽑는다.
    random_number = random.randint(1, 100)
    print(f"사실 숫자는: {random_number}")
    # TODO 1. 사용자에에게 게임의 규칙과 기회를 알려준다.
    print('''
             ______________
            ||            ||
            ||  UP & DOWN ||
            ||    GAME    ||
            ||____________||
            |______________|
             \\\\############\\\\
              \\\\############\\\\
               \      ____    \\   
                \_____\___\____\\

UP & DOWN 게임에 오신 당신을 환영합니다.
당신에게 주어진 기회는 단 20번....!
    ''')

    life = 20
    for i in range(life): #while문으로 쓰려면 while life > 0으로 사용
        print(f"현재 당신의 기회: {life}번")
        # TODO 2. 사용자에에게 숫자를 유추해 보라고 한다.
        while wrong_number != 'n':
            user_number = input("숫자를 유추하세요: ")
            # TODO 3. 유추한 숫자가 컴퓨터가 생각한 숫자보다 크면 down, 아니면 up을 출력한다.
            # TODO 4. 3을 반복한다. 사용자가 숫자를 맞추면 몇번만에 맞췄는지 알려준다.
            if not user_number.isdigit():##사용자가 문자로 입력할 때
                print("숫자로 입력해 주세요!")
            elif int(user_number) < 0 or int(user_number) > 100: #사용자가 1부터 100까지의 숫자를 입력하지 않았을 때
                print("1~100까지의 올바른 번호를 입력하세요")
            else:
                wrong_number = 'n'
                if int(user_number) == random_number:
                    print(f'정답입니다! 컴퓨터가 생각한 숫자는 {random_number}이었습니다.')
                    print(f"{20-life+1}번 만에 정답을 맞췄습니다.")
                    user_win = 'y'
                    break
                elif int(user_number) > random_number:
                    print("down")
                    life -= 1
                elif int(user_number) < random_number:
                    print("up")
                    life -= 1
            wrong_number = 'y'
        if user_win == 'y':
            break

    if life == 0: ## 유저가 게임에서 실패했을 때
        print(f"당신은 실패했습니다. 정답은 {random_number}였습니다.")
    # TODO 5. 계속할 것인지 묻는다.
    user_wants_continue = input("다시 하시겠습니까?(y/n): ").lower()
    if user_wants_continue == 'y':
        user_win = 'n'
        wrong_number = 'y'
        os.system("cls")
    else:
        game_end = 'y'

20_quesiton.py
0.00MB

 

실행화면

 

문자로 답변했을 때

1~ 100까지의 숫자로 답변하지 않았을 때



 

 

동영상

 

 

profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!