• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

숫자 맞추기 게임을 만들던 중 생긴 질문입니다.

20.11.09 23:57 작성 조회수 219

1

강의 내용을 듣고 직접 만들어 보면서 몇가지 기능들도 추가해보고 있는데요

이전에 입력한 숫자를 다시 입력했을 경우에는 횟수 차감을 시키지 않는 그런 기능을 구현해보려 합니다.

이 기능을 구현하기 위해 제가 생각한 방법은

1. 게임 시작전에 리스트를 생성하고

2. 값을 입력하면 그 리스트 안으로 들어가고

3. 다음에 입력하였을 때 리스트에 그 값이 있는지 확인하고 있다면 횟수를 차감하지 않고, 없다면 차감하는

이러한 방식으로 그려보았는데요, 어떻게 구현해야 할지 갈피가 잘 잡히지 않습니다 ㅜㅜ

도와주실 수 있으신가요..?

import random

n = random.randint(1,1000)

print('정답은',n,'입니다')

count = 12

while count > 0:

    guess = int(input('숫자를 입력하시오 :'))

    if n == guess :

        print('정답입니다!')

        break

    elif n > guess :

        print('UP')

    elif n < guess :

        print('DOWN')

    count-= 1

    

    print('남은 횟수는', count, '입니다')

 

    if count <= 3:

        if n%2 == 0:

            print('정답은 짝수입니다')

        else:

            print('정답은 홀수입니다')

 

else:

   print('틀렸습니다')

 

print('GAME OVER')

 

답변 1

답변을 작성해보세요.

0

말씀하신 내용처럼 구현하시면 될듯 한데 살짝만 변형해서

1. 게임 시작전에 빈 리스트를 생성 하고

2. 입력한 값이 리스트에 존재하지 않으면 횟수 차감 하고 리스트에 추가

3. 입력한 값이 리스트에 존재하면 아무것도 안함

이렇게 조건을 생각해볼 수 있습니다.

빈리스트는 saved = [] 이런식으로 선언할 수 있고

입력한 값이 리스트에 존재하지 않으면 횟수 차감하고 리스트에 추가는

if guess in saved:

    count -= 1

    saved.append(guess)

이렇게 구현하시면 될듯 합니다.

import random
# 입력된 값을 기억할 빈 리스트 생성
saved = []

n = random.randint(1, 1000)
print('정답은', n, '입니다')
count = 12
while count > 0:
    guess = int(input('숫자를 입력하시오 :'))
    if n == guess:
        print('정답입니다!')
        break
    elif n > guess:
        print('UP')
    elif n < guess:
        print('DOWN')

    # 입력한 값이 리스트에 존재하지 않으면
    if guess not in saved:
        count -= 1                      # 카운트 차감
        saved.append(guess)     # 입력된 값 기억 리스트에 추가

    print('남은 횟수는', count, '입니다')

    if count <= 3:
        if n % 2 == 0:
            print('정답은 짝수입니다')
        else:
            print('정답은 홀수입니다')
else:
    print('틀렸습니다')

print('GAME OVER')