작성일: 2021. 5. 3. 16:18
이 글은 이전의 블로그( https://aesop.tistory.com/ ) 에서 작성한 글 입니다.
원본 글 링크: 파이썬으로 야구게임을 해보자 (tistory.com)
요새 학부생 과목중 인기많은 파이썬을 배우던 어느날 같은과 친구가 중간고사가 끝나면 같이 야구게임을 만들어보자 했다. 그 당시에는 바빠서 알겠다고만 하고 말았다가 마침 저번주에 시험도 끝났고 아직은 여유로웠던 지라 오늘 만들어보자 했더니 갑자기 친구가 귀찮다며 안한다고 해서 결국 나 혼자만 한거는 비밀이랄까...ㅎ
처음에는 야구게임이 뭔지도 몰랐던 나는 나무위키에서 룰을 찾아보았다.
간략하게 야구게임은 '숫자야구게임' 이라고 한다더라
우선 상대방(컴퓨터)이 세자리 혹은 네자리의 숫자를 정한다.
이후 나(사용자)는 아무 세자리 숫자를 부르며 숫자를 맞추는 형식인데
감사합니다 나무위키 ^^7
무튼 초보인지라 처음에는 해매고 완성했다 싶었을쯤, 중복된 숫자는 안된다는 룰이 있다는것을 간과해 난수 발생코드를 다시짰다.
그래서 결과는...
더보기
import random
rn = []
for _ in range(3):
a = random.randint(0, 9)
while a in rn:
a = random.randint(0, 9)
rn.append(a)
# print(rn)
tries = 0
balls = 0
strikes = 0
print("Baseball Game has started!")
print("==========================")
while strikes < 3:
balls = 0
strikes = 0
num = str(input("Guess: "))
tries += 1
if len(num) != 3 or len(num) == 0:
print("Please input only 3 character!")
tries -= 1
if len(num) == 3:
for i in range(0, 3):
for j in range(0, 3):
if num[i] == str(rn[j]) and i == j:
strikes += 1
elif num[i] == str(rn[j]) and i != j:
balls += 1
print(f"Result: {strikes} strike, {balls} ball")
print("==========================")
print(f"You've guessed {tries} times before getting 3 strikes")
실행시켜보면 요런식이다
생각보다 만족스러운 코드를 짤 수 있어서 성취감이 느껴졌지만
처음 난수발생과 비교에서 좀 해매서 아직 연습이 많이 필요하겠다고 느꼈다...ㅎ
어쨌거나 잘한 나에게 오늘 저녁은 치킨이다