플레이어가 숫자를 입력하면 컴퓨터가 생각한 숫자와 비교하여 "Up" 또는 "Down"을 힌트로 받아 숫자를 맞추는 게임
random_number = random.randint(1, 100)
print(random_number)
user_number = input('Enter number: ')
입력한 숫자가 1~100 사이의 정수인지 검증하기
val.isdecimal() : 문자열이 0~9 사이의 숫자로 이루어진 경우만 True 를 리턴 (즉, 양의 정수인 경우에만 True 를 리턴)while True:
user_number = input('Enter number: ')
if user_number.isdecimal():
user_number = int(user_number)
if 1 <= user_number <= 100:
break
print("Please enter an integer between 1 and 100.")
두 숫자를 비교하여, 조건에 따라 다른 결과를 출력
if random_number > user_number:
print("Up!")
elif random_number < user_number:
print("Down!")
else:
print("Bingo!")
두 숫자가 같을 때까지 반복하도록 while 을 쓰고, 함수로 하나로 묶었다.
def up_down():
random_number = random.randint(1, 100)
while True:
while True:
user_number = input('Enter number: ')
if user_number.isdecimal():
user_number = int(user_number)
if 1 <= user_number <= 100:
break
print("Please enter an integer between 1 and 100.")
if random_number > user_number:
print("Up!")
print(random_number)
elif random_number < user_number:
print("Down!")
print(random_number)
else:
print("Bingo!")
print(random_number)
break
변수 attempts를 만들고, 새로운 숫자를 입력할 때마다 1을 더함
attempts = 0
while True:
...
attempts += 1
if random_number > user_number:
...
else:
...
print(f"Your attempts: {attempts}")
break
replay 함수를 만들어서, 사용자 응답이 y, Y, n, N 을 입력하도록 하고, 다른 값을 입력하면 다시 응답을 받도록 반복y, Y 중 하나이면, break 로 up_down() 함수 내 두번째 while을 빠져나오고, 첫번째 while을 다시 돌게 함n, N 중 하나이면, return 으로 up_down() 함수를 완전히 종료함def replay():
while True:
reply = input("Do you want to REPLAY? (y/n): ").lower()
if reply == "y" or reply == "n":
return reply
def up_down():
while True:
random_number = random.randint(1, 100)
attempts = 0
while True:
...
...
else:
print("Bingo!")
print(f"Your attempts: {attempts}")
reply = replay()
if reply == "y":
break # 함수 재실행
elif reply == "n":
return # 함수 종료
플레이어가 시도한 최고 시도 횟수 (가장 많이 시도한 횟수)를 기록하고, 게임 재개할 때마다 보여주기
best_attempts 를 선언하고, 0 으로 초기화best_attempts 가 attempts 보다 작으면 best_attempts 에 attempts 저장if best_attempts < attempts:
best_attempts = attempts
import random
def replay():
while True:
reply = input("Do you want to REPLAY? (y/n): ").lower()
if reply == "y" or reply == "n":
return reply
def up_down():
best_attempts = 0
while True:
print(f"Your Best Attempts: {best_attempts}")
random_number = random.randint(1, 100)
attempts = 0
while True:
while True:
user_number = input('Enter number: ')
if user_number.isdecimal():
user_number = int(user_number)
if 1 <= user_number <= 100:
break
print("Please enter an integer between 1 and 100.")
attempts += 1
if random_number > user_number:
print("Up!")
elif random_number < user_number:
print("Down!")
else:
print("Bingo!")
print(f"Your attempts: {attempts}")
if best_attempts < attempts:
best_attempts = attempts
reply = replay()
if reply == "y":
break # 함수 재실행
elif reply == "n":
return # 함수 종료
up_down()
