import random
def up_down_game():
# 랜덤 숫자 생성을 위한 random 모듈
random_number = random.randint(1, 100)
attempts = 0
while True:
try:
guess = int(input("숫자를 입력하세요: "))
if guess < 1 or guess > 100:
print("1부터 100 사이의 숫자를 입력하세요.")
continue
except ValueError:
print("유효한 범위내 숫자를 입력하세요.")
continue
attempts += 1
if guess < random_number:
print("업!")
elif guess > random_number:
print("다운!")
else:
print(f"맞았습니다. 시도한 횟수: {attempts}")
break
while True: # 게임을 다시 시작할지 묻는 루프
play_again = input("다시 하시겠습니까? (y/n): ")
if play_again.lower() == 'y':
up_down_game() # 게임 재시작
elif play_again.lower() == 'n':
print("게임을 종료합니다.")
break
up_down_game()
각각 코드설명
- import random: random 모듈을 가져옵니다. 이 모듈은 무작위 숫자를 생성하는 데 사용됩니다.
- def up_down_game():: up_down_game이라는 함수를 정의합니다. 이 함수는 사용자에게 숫자를 맞추는 게임을 제공합니다.
- random_number = random.randint(1, 100): 1부터 100 사이의 무작위 숫자를 생성하여 random_number 변수에 할당합니다.
- attempts = 0: 사용자가 시도한 횟수를 저장하는 변수를 초기화합니다.
- while True:: 무한 루프를 시작합니다. 사용자가 게임을 종료할 때까지 계속됩니다.
- try:: 예외가 발생할 수 있는 코드 블록을 시작합니다.
- guess = int(input("숫자를 입력하세요: ")): 사용자로부터 숫자를 입력받습니다.
- if guess < 1 or guess > 100:: 사용자가 입력한 숫자가 1보다 작거나 100보다 큰지 확인합니다.
- print("1부터 100 사이의 숫자를 입력하세요."): 숫자가 범위를 벗어난 경우 해당 메시지를 출력합니다.
- except ValueError:: 값 에러가 발생한 경우를 처리합니다. 즉, 사용자가 숫자가 아닌 값을 입력했을 때 이 부분이 실행됩니다.
- print("유효한 범위내 숫자를 입력하세요."): 숫자가 아닌 값을 입력한 경우 해당 메시지를 출력합니다.
- continue: 루프의 처음으로 다시 돌아갑니다. 즉, 사용자로부터 올바른 입력을 받을 때까지 루프가 계속됩니다.
- attempts += 1: 사용자가 올바른 숫자를 입력한 경우, 시도 횟수를 증가시킵니다.
- if guess < random_number:: 사용자가 입력한 숫자가 무작위 숫자보다 작은지 확인합니다.
- print("업!"): 만약 숫자가 더 작다면 "업!"이라는 메시지를 출력합니다.
- elif guess > random_number:: 사용자가 입력한 숫자가 무작위 숫자보다 큰지 확인합니다.
- print("다운!"): 만약 숫자가 더 크다면 "다운!"이라는 메시지를 출력합니다.
- else:: 이전의 모든 경우가 아닌 경우 즉, 사용자가 무작위 숫자를 맞춘 경우입니다.
- print(f"맞았습니다. 시도한 횟수: {attempts}"): "맞았습니다."라는 메시지와 시도한 횟수를 출력합니다.
- break: 무한 루프를 종료합니다.
- while True:: 또 다른 무한 루프를 시작합니다. 이는 사용자가 게임을 다시 시작할지 여부를 묻기 위한 루프입니다.
- play_again = input("다시 하시겠습니까? (y/n): "): 사용자에게 게임을 다시 시작할지 묻습니다.
- if play_again.lower() == 'y':: 사용자가 'y'를 입력한 경우:
- up_down_game(): up_down_game 함수를 다시 호출하여 게임을 다시 시작합니다.
- elif play_again.lower() == 'n':: 사용자가 'n'을 입력한 경우:
- .lower(): 사용자가 입력한값을 소문자로 바꿔줍니다.
- print("게임을 종료합니다."): "게임을 종료합니다."라는 메시지를 출력합니다.
- break: 무한 루프를 종료합니다.
- up_down_game(): 함수를 호출하여 게임을 시작합니다.
'Til' 카테고리의 다른 글
Til 24.02.27 -파이썬 개인과제 가위바위보 게임 웹으로만들기 (파이썬 개발환경 참고) (1) | 2024.02.27 |
---|---|
Til 파이썬 개인과제 - 가위바위보 게임 (0) | 2024.02.26 |
Til 24.02.23 -파이썬 (0) | 2024.02.23 |
Til 24.02.21- python - pycham (0) | 2024.02.22 |
Til 24.02.20 - 파이참 (0) | 2024.02.22 |