인프런 커뮤니티 질문&답변

hcm0518님의 프로필 이미지
hcm0518

작성한 질문수

파이썬(Python) 기초부터 실무까지 part.1

반복문(실습-6)

마지막 숫자 입력하는 문제

작성

·

232

0

선생님이 작성해주신 코드는 y를 입렸했을때는

계속 게임을 다시 진행한다고 하시는데..

y를 누르지 않고 다른버튼을 눌러도 게임을 지속하게 됩니다.

사실 코드상 "y" or "n" 이 아닐경우에는 다시 입력하라는 코드를 작성해야하는데 이때 else 구문을 넣어서 코딩을 해야할 것 같은데 그럴 경우..좀 헷갈리네요 ㅠㅠ

잘못된 문자를 작성했다고  바로  while문 초기로 올라가버려서..

 

* 선생님코드

# 중첩 if 문이 들어가서 게임의 지속 여부를 확인하는 코드 
if code == "n": # 게임 종료 코드
print("게임을 종료합니다.")
break
else: # 게임을 지속하는 코드
print("--------------------")
# 게임을 재시작을 하기 위해서 다시 난수발생과 cnt 를 초기화를 해야한다.
print("게임을 재시작합니다.")
num = randint(1, 100)
print("발생한 난수의 값 : ", num)
cnt = 0

* 제코드

#
중첩 if 문이 들어가서 게임의 지속여부를 확인하는 코드
if code == "n": # 게임 종료 코드
print("게임을 종료합니다.")
break
elif code == "y": #게임 지속하는 코드
print("---------------------------")
print("게임을 재시작합니다.")
randnum = randint(1,100)
print("발생한 난수의 값 : ", randnum)
cnt = 0
else :
print("잘못된 문자를 작성하였습니다.")

답변 1

0

저도 강의를 보며 배우는 입장이라 이게 효율적으로 잘 짠 코드인지는 모르겠지만 지금까지 배운것들 활용하면 질문자님이 질문하신 내용도 적용되는거 같습니다. 도움이 되셨으면 좋겠네요 ㅎㅎ

# 임의의 숫자를 발생시켜 사용자로부터 입력받아 숫자를 맞추는 게임 만들기
from random import *

cnt = 0
num = randint(1, 100)
code = "y"
print("발생한 난수의 값 : ", num)

print("1부터 100사이의 숫자를 맞추어 보세요.(기회는 10번 입니다.)")

while cnt < 10 and code == "y":
    guess = int(input("숫자를 입력하세요 : "))
    cnt += 1
    cnt2 = 10-cnt
    if guess < num:
        if cnt2 == 0:
            print("Up!")
        else:
            print("Up! 기회가 %d번 남았습니다." % cnt2)
    elif guess > num:
        if cnt2 == 0:
            print("Down!")
        else:
            print("Down!기회가 %d번 남았습니다." % cnt2)
    elif guess == num:
        print("축하드립니다. 정답입니다!")
        code = input("게임을 계속 하시겠습니까?(y는 계속, n은 중단)")
    # 게임을 재시작하기 위해 난수와 cnt를 초기화 한다. (중첩 if문이 들어가서 게임의 지속여부를 확인하는 코드)
        while code != "y" or code != "n":
            if code == "y":
                print("\n-------------------------------\n")
                num = randint(1, 100)
                print("발생한 난수의 값 : ", num)
                cnt = 0
                break
            elif code == "n":
                print("게임을 종료합니다.")
                break
            else:
                print("잘못된 코드를 입력하셨습니다.")
                code = input("게임을 계속 하시겠습니까?(y는 계속, n은 중단)")  

    if cnt == 10:
        print("아쉽네요. 10번의 기회를 모두 소진하였습니다.")
        code = input("게임을 계속 하시겠습니까?(y는 계속, n은 중단)")
        while code != "y" or code != "n":
            if code == "y":
                print("\n-------------------------------\n")
                num = randint(1, 100)
                print("발생한 난수의 값 : ", num)
                cnt = 0
                break
            elif code == "n":
                print("게임을 종료합니다.")
                break
            else:
                print("잘못된 코드를 입력하셨습니다.")
                code = input("게임을 계속 하시겠습니까?(y는 계속, n은 중단)")
hcm0518님의 프로필 이미지
hcm0518

작성한 질문수

질문하기