Python
숫자 야구 -시도 횟수 줄이기(진행중)
충 민
2022. 7. 26. 19:18
자바에서 구현한 숫자 야구 게임을 파이썬에서 구현해보았다
평균은 33회 이내이다 아직 연구가 더 필요하다
import random
import os
from re import A
sum=0
for a in range(1000):
r=0
numArr = [0,0,0]##랜덤 정답 숫자
numArr2 = [0,0,0]##랜덤 도전 숫자
a1 = list()
k=0
while True:
a1.append(k)
if len(a1)>=10:
break
k+=1
avg=0
h=0
while h<3:
num = random.randint(1,9)##랜덤 정답 숫자
##중복처리
if numArr[0]==num:
continue
elif numArr[1]==num:
continue
else:
numArr[h] = num
h+=1
##정답숫자 생성
print('정답숫자:',end='')
for w in range(3):
print(numArr[w],end=' ')
##정답 숫자 출력
print()
##도전 시작
while True:
strike=0
ball=0
q=0
while q<3:
##도전숫자 생성
num2 = random.choice(a1)##랜덤 도전 숫자
if numArr2[0]==num2:
continue
elif numArr2[1]==num2:
continue
else:
numArr2[q]=num2
q+=1
##도전숫자 출력
for w in range(3):
print(numArr2[w],end=' ')
for i in range(3):
for j in range(3):
if numArr[i] == numArr2[j]:
if i==j:
strike+=1
else:
ball+=1
r+=1
print('--->',strike,'S',ball,'B')
print()
if strike+ball == 0:
for i in range(3):
a1.remove(int(numArr2[i]))
if strike == 3:
print(r,'번째만에 도전 성공')
sum+=r
break
avg=sum/1000
print('평균 횟수:',avg)