728x90
반응형
(문제)
파이썬 숫자 업다운 게임에서 숫자를 영어로 바꾸고 싶은데 어디가 잘못된지 봐주실 수 있을까요?
예를 들어 랜덤으로 d라는 임의의 알파벳이 지정되었을 때 a를 입력하면 업, e를 입력하면 다운으로 뜨는 그런 프로그램을 만들고 싶어요
숫자 순서대로 영어를 대입하는 코드를 넣었는데도 오류가 떠서 어떻게 해야하는지 모르겠습니다
아래 제가 쓴 코드 첨부 하겠습니다
import random
print ("알파벳 업 다운 게임 입니다~!")
print ("a 부터 z 사이의 알파벳이 랜덤으로 표시 됩니다. 맞춰보시오")
a = random.randint(1,25)
c = 0
diction= {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g', 7: 'h', 8: 'i', 9: 'j', 10: 'k', 11: 'l', 12: 'm', 13: 'n', 14: 'o', 15: 'p', 16: 'q', 17: 'r', 18: 's', 19: 't', 20: 'u', 21: 'v', 22: 'w', 23: 'x', 24: 'y', 25: 'z'}
num=int(input(''))
for s in range(num):
print(diction[s],end=' ')
while 1:
b = int(input("입력 하세요:"))
if b == a:
print("정답 입니다. 총 ",c," 번 만에 맞추셨습니다. 게임을 종료합니다.")
break
elif b > a:
print("다운!")
c += 1
elif b < a:
print("업!")
c += 1
(방법)
diction의 구조를 변경. 알파벳이 key가 되록 함.
그래야 알파벳 입력을 숫자로 찾을 수 있음.
b = int(input("입력 하세요:")) 에서 알파벳을 입력 받을 것이기 때문에 int 를 제거 하야 함.
그리고 입력 밧을 알파벳을 숫자로 찾아야 하기 때문에 b = diction[n]으로 함(n은 입력 받은 알파벳)
diction 딕셔너리 만드는 것으로 일일이 지정하지 않고, for문으로 만들었습니다.
import random
print ("알파벳 업 다운 게임 입니다~!")
print ("a 부터 z 사이의 알파벳이 랜덤으로 표시 됩니다. 맞춰보시오")
a = random.randint(1,25)
c = 0
# diction= {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g', 7: 'h', 8: 'i', 9: 'j', 10: 'k', 11: 'l', 12: 'm', 13: 'n', 14: 'o', 15: 'p', 16: 'q', 17: 'r', 18: 's', 19: 't', 20: 'u', 21: 'v', 22: 'w', 23: 'x', 24: 'y', 25: 'z'}
diction = {} # diction= {'a':0, 'b':1...와 같이 알파벳이 key가 되도록 함
for i in range(97, 123): # ord('a') = 97, ord('z') = 122
diction[chr(i)] = i-ord('a') # a=97. a 가 0 이 되도록 i-ord('a')를 함
# num=int(input(''))
# n=input('')
# num = diction[n]
# for s in range(num):
# print(diction[s],end=' ')
while 1:
# b = int(input("입력 하세요:"))
n = input("입력 하세요:")
b = diction[n]
# print(a, b) # 디깅용
if b == a:
print("정답 입니다. 총 ",c," 번 만에 맞추셨습니다. 게임을 종료합니다.")
break
elif b > a:
print("다운!")
c += 1
elif b < a:
print("업!")
c += 1
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 1~99까지의 난수인 임의의 수중 가장 큰 정수 출력 (0) | 2023.01.05 |
---|---|
[파이썬] 문제 : 근로 시급 계산 (0) | 2023.01.05 |
[파이썬] 문제 : tkinter로 슬라이더 만들기 (0) | 2023.01.05 |
[파이썬] 문제 : 입력시 숫자형인지 파악 (0) | 2023.01.05 |
[파이썬] 문제 : 터틀 줄어드는 사각형 그리기 (1) | 2023.01.05 |
댓글