숫자 야구게임은 3개의 번호를 맞추는 게임입니다. 파이썬을 이용하면 랜덤으로 3개의 숫자를 정하고, 이를 질의하며 맞춰가는 게임을 구현할 수 있습니다. 파이썬 조건문과 반복문을 배웠다면 이를 이용해서 만들 수 있습니다. 파이썬 숫자 야구게임 만드는 방법을 알아보겠습니다.

 

 

파이썬 기초를 배우면 몇 가지 재미있는 것을 해 볼 수 있습니다. 숫자 야구게임의 방식은 이렇습니다. 먼저 정답인 숫자 3개를 정합니다. 그리고 다음 정답을 맞추기 위해 숫자 3개를 부릅니다. 같은 자리에 같은 숫자를 맞추면 스트라이크, 자리는 다르지만 숫자가 같으면 볼입니다. 그래서 3 스트라이크이면, 정답이 되는 게임이지요. 위의 게임을 파이썬으로 만들 수 있습니다. 오늘은 파이썬 숫자 야구게임 만드는 방법에 대해서 알아보겠습니다.

 

 

1. 정답을 랜덤하게 정합니다

필자는 1부터 20까지 중에 3개의 숫자를 정답으로 정했습니다. 3개의 숫자는 중복이 되면 안 되기 때문에, random 모듈의 sample함수를 이용했습니다.

 

import random

y = random.sample(range(1, 21), 3)

 

2. 숫자를 입력받고, 값을 비교합니다

정답을 맞출 때까지 while문을 이용해서 계속 3자리 숫자를 입력하게 합니다. 숫자는 문자열로 입력하고 콤마(,)를 기준으로, 3개의 숫자값이 있는 리스트로 변환합니다.

 

ans = input('숫자를 입력하세요.(구분자:,) ')
ans = ans.split(',')
ans = [int(a) for a in ans]

 

리스트가 동일하면 '3스트라이크'로 게임을 종료합니다.

 

if y == ans:
    print('3 스트파이크, 0 볼')
    print('정답:', y)
    is_right = 1

 

리스트가 같지 않으면, 값을 비교해서 스트라이크와 볼의 갯수를 구합니다. 입력한 숫자가 정답에 있는지 for문을 이용해서 확인합니다. 이 때 숫자가 있는지는 in을 이용해서 확인해야, 숫자가 없어도 에러가 나지 않습니다. 숫자가 있다면 자리수가 같은지 확인해서, 같으면 스트라이크 다르면 볼로 계산합니다.

 

for a in ans:
    if a in y:
        if y.index(a) == ans.index(a):
            s = s + 1
        elif y.index(a) != ans.index(a):
            b = b + 1

 

 

전체 코드는 아래와 같습니다.

 

import random

y = random.sample(range(1, 21), 3)


is_right = 0

while is_right==0:
    ans = input('숫자를 입력하세요.(구분자:,) ')
    ans = ans.split(',')
    ans = [int(a) for a in ans]
    print('입력한 숫자:', ans)

    s = 0;b = 0

    if y == ans:
        print('3 스트파이크, 0 볼')
        print('정답:', y)
        is_right = 1
    else:
        for a in ans:
            if a in y:
                if y.index(a) == ans.index(a):
                    s = s + 1
                elif y.index(a) != ans.index(a):
                    b = b + 1

        print(f'{s} 스트라이크, {b} 볼')

 

오늘은 이렇게 파이썬 숫자 야구게임 만드는 방법에 대해서 알아보았습니다. 파이썬 리스트, 조건문, 반복문을 복습해 볼 수 있는 좋은 기회였습니다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기