- 3월 1일에 나와서 숫자야구 게임을 만들어봄
- 규칙
- 0에서 9까지 4개의 중복없는 숫자를 뽑음. (0이 앞에 와도 상관X)
- 사용자가 4개의 중복없는 숫자를 뽑아서 정답 숫자와 비교해봤을 때, 뽑은 숫자가 정답 숫자에 포함되어 있으면 갯수에 따라 n 볼, 그 숫자의 자리까지 맞으면 n 스트라이크임.
# 2025.03.01.(토)
# 4자리 숫자 0~9, 중복X
# 숫자가 포함되어 있음 ==> n볼
# 자리수까지 맞음 ===> n스트라이크
import random
print("숫자야구 게임을 시작합니다.")
count = 1
com_num_initial = []
while len(com_num_initial) < 4:
com_num = random.randint(0, 9)
switch = False
for i in com_num_initial:
if i == com_num:
switch = True
break
if switch:
# print("컴퓨터 숫자 중복 발생")
continue
com_num_initial.append(com_num)
com_num = com_num_initial
# print("컴퓨터가 선택한 숫자: ",com_num)
while True:
user_initial = []
while len(user_initial) < 4:
user_num = input("4개의 숫자를 입력해주세요: ")
if user_num.isnumeric() == False:
print("0 ~ 9 사이의 숫자를 입력해주세요!!")
continue
user_num = int(user_num)
if not 0 <= user_num <= 9:
print("0 ~ 9 사이의 숫자를 입력해주세요!!")
continue
switch = False
for i in user_initial:
if i == user_num:
switch = True
break
if switch:
print("중복된 숫자입니다. 다시 입력해주세요.")
continue
user_initial.append(user_num)
user_num = user_initial
# print("선택한 번호: ", user_num)
strike = 0
ball = 0
for i in range(4):
if user_num[i] == com_num[i]:
strike += 1
elif user_num[i] in com_num:
ball += 1
if strike == 4:
print(f"{count}회차: 정답입니다!")
break
else:
print("컴퓨터가 선택한 숫자: ", com_num)
print("사용자가 선택한 숫자: ", user_num)
print(f"{count}회차: {strike} 스트라이크, {ball} 볼 입니다.")
count += 1
'Python' 카테고리의 다른 글
[2025.03.04] 순서도 그리기_4_리스트 (0) | 2025.03.04 |
---|---|
[2025.03.04] 물고기 키워 팔기 게임 (0) | 2025.03.04 |
[2025.02.28] 순서도 그리기_3_반복문 (0) | 2025.03.01 |
[2025.02.28] 순서도 그리기_2 (0) | 2025.02.28 |
[2025.02.27] 순서도 그리기_1 (0) | 2025.02.27 |