-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
숫자 맞추기 게임을 만들던 중 생긴 질문입니다.
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')
답변을 작성해보세요.
0
남박사
지식공유자2020.11.12
말씀하신 내용처럼 구현하시면 될듯 한데 살짝만 변형해서
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')
답변 1