오늘부터 스스로 작은 프로젝트 주제를 선정해서 코딩해보라고 하셨고 나는 숫자야구를만들기로 하였다.
1~9까지의 중복되지 않는 3자리 숫자를 임의로 선정하고 유저가 숫자를 입력해서 자리와 숫자가 맞으면 스트라이크 자리가 다르지만 숫자는 맞으면 볼을 출력하고 총 9번의 시도기회를 주고 게임이 끝나면 어느정도의 시간이 걸렸는지 출력하게 했다. 사용자가 1~9이외의 숫자를 입력하면 다시입력하도록 하고 세가지 숫자를 중복해서 입력해도 다시입력하도록 했다. 문자열을 입력 받았을때 다시입력하게끔 유도하는 방법을 구글링해서 찾았다.
import random
import time
while True:
question1 = random.randint(1,9)
question2 = random.randint(1,9)
question3 = random.randint(1,9)
if question1==question2:
question2 = random.randint(1,9)
elif question2==question3:
question3 = random.randint(1,9)
elif question1==question3:
question3 = random.randint(1,9)
else:
break
hitter=[question1,question2,question3]
print('야구 게임을 시작합니다 앤터를 입력해 주세요 : ')
input()
start=time.time()
#중간확인 중복없이 숫자가 선정됬는지
print(hitter[0],hitter[1],hitter[2])
trycnt=0
for i in range(9):
try:
print('1~9의 숫자를 중복없이 3개 입력하세요')
userin1=int(input("첫번째 숫자 입력"))
userin2=int(input("두번째 숫자 입력"))
userin3=int(input("세번째 숫자 입력"))
#숫자 3개가 다른값이며 1~9의 숫자인지확인
if 0< userin1 <10 and 0< userin2 <10 and 0< userin3 <10 and userin1 !=userin2 and userin1 !=userin3 and userin3 !=userin2 :
pitcher = [userin1,userin2,userin3]
else:
print('중복되지 않는 한개의숫자만 입력해주세요')
continue
trycnt+=1
print(trycnt,'번째 시도')
strikecnt=0
ballcnt=0
if pitcher == hitter:
print("Strikeout!!! 승리 하셨습니다.")
break
for i in range(3):
if pitcher[i] == hitter[i]:
strikecnt+=1
elif pitcher[i] != hitter[i] and pitcher[i] in hitter:
ballcnt+=1
print(strikecnt,'Strike',ballcnt,'Ball','입니다.')
#숫자가 아닌 문자열을 입력했을때 다시 입력하게 함
except ValueError:
print("숫자가 아닙니다. 다시입력해 주세요")
end=time.time()
ending=end-start
ending= format(ending,".2f")
print('playtime:',ending,'sec')
'First step > AI 기초반' 카테고리의 다른 글
[TIL]21.06.29AI 첫날 셋팅 (0) | 2021.06.29 |
---|---|
[TIL] api로 날씨데이터를 받아와서 출력하기 (0) | 2021.06.27 |
[TIL]21.06.24 PyQt ,class기초 (0) | 2021.06.24 |
[TIL]21.06.23 GUI기초2,계산기만들기 (0) | 2021.06.23 |
[TIL]21.06.22 텍스트파일 읽기,수정하기,타자연습만들기,GUI기초1 (0) | 2021.06.23 |