오늘은 강의시간이 비어 남는 시간에 숫자야구를 만들어보았다. 이런 프로그램을 혼자 처음 만들어봐서 완성했을때 뿌듯함도 컸고 나름 재미있었다.
다음에는 def와 class를 이용해서 코드를 조금 더 보기 쉽게 보완할 생각이다.
# 1
import random
base_ball = []
strike = 0
ball = 0
# 첫번째 게임이 끝난 후에도 게임이 지속되게 반복
running = True
while running:
for i in range(4):
a = (random.randint(1,9)) # 랜덤수를 a에 저장 후 중복이 아니라면 base_ball 리스트에 저장
while a in base_ball:
a = random.randint(1,9)
base_ball.append(a)
base_ball = list(map(int,base_ball))
ans_list = []
while ans_list != base_ball: # 수가 같지않다면 (정답이 아니라면) 맞을 때 까지 실행
count = 1
ans = input('4자리 수를 입력하세요 :')
ans_list = list(ans)
ans_list = list(map(int,ans_list))
if ans_list[0] in base_ball:
if ans_list[0] == base_ball[0]:
strike += 1 # 스트라이크와 볼의 개수를 증가시켜 변수에 저장
else :
ball += 1
if ans_list[1] in base_ball:
if ans_list[1] == base_ball[1]:
strike += 1
else :
ball += 1
if ans_list[2] in base_ball:
if ans_list[2] == base_ball[2]:
strike += 1
else :
ball += 1
if ans_list[3] in base_ball:
if ans_list[3] == base_ball[3]:
strike += 1
else :
ball += 1
if count > 10:
print('10번안에 맞추지 못했습니다 게임을 종료합니다.')
running = False # 10번 안에 맞추지 못할 경우 게임을 종료함
print(f'strike : {strike}, ball : {ball}')
strike = 0 # 스트라이크와 볼의 개수가 계속 저장되면 다음에도 이어서 출력되기 때문에 초기화
ball = 0
count += 1
if ans_list == base_ball:
print(f'축하합니다! {count}번 만에 맞췄습니다')
+ 추가
집에 오는길에 다시 한번 코드를 살펴보니 if 절이 계속 반복되고 있는 것을 볼 수 있었다. 그래서 for 문으로 묶어 한 번에 처리할 수 있도록 보완했다.
import random
base_ball = []
strike = 0
ball = 0
out = 0
while True:
for i in range(4):
a = (random.randint(1,9))
while a in base_ball:
a = random.randint(1,9)
base_ball.append(a)
base_ball = list(map(int,base_ball))
ans_list = []
while ans_list != base_ball:
count = 1
ans = input('4자리 수를 입력하세요 :')
ans_list = list(ans)
ans_list = list(map(int,ans_list))
for i in range (0,4): # 코드 변경 부분
if ans_list[i] in base_ball:
if ans_list[i] == base_ball[i]:
strike += 1
else :
ball += 1
i += 1
print(f'strike : {strike}, ball : {ball}, out : {out}')
strike = 0
ball = 0
count += 1
if ans_list == base_ball:
print(f'축하합니다! {count}번 만에 맞췄습니다')
반응형
'Python' 카테고리의 다른 글
(Python) def 를 이용한 함수 생성 (0) | 2022.05.15 |
---|---|
(Python) 숫자 up & down 게임 (0) | 2022.05.07 |
(Python) if 를 이용한 조건문 (0) | 2022.05.04 |
(Python) While()을 이용한 반복문 (0) | 2022.04.26 |
(Python) 리스트 할당 (0) | 2022.04.19 |
댓글