티스토리 뷰

Code


import random

a = [];

for i in range(1,10):
    a.append(i)

random.shuffle(a)

print "===== 게임 시작  ====="
b=[0,0,0]
cnt = 1
for i in range(100):
    print "===== %2dth 시도 ====="%cnt
    cnt +=1
    x = int(raw_input("Insert 3 number : "))
    if x == 0:
        break
    for i in range(3):
        b[2-i] = x % 10
        x /= 10
    print b

    ball = 0;
    strike = 0;
    for n in range(3):
        for m in range(3):
            if a[n] == b[m] :
                if n == m:
                    strike +=1
                else :
                    ball +=1
    print "%d strike, %d ball!"%(strike,ball)
    if strike == 3:
        print "You are victory!!"
        break
print "===== 게임 종료 ====="

일단 숫자 야구 게임을 만들기 위해서는, 모든 게임이 그렇듯이, 랜덤으로 숫자를 찍어 내어야 한다.

그래서 random module을 import 시켰다.

그 다음 한 줄 명령창에서 random에 안에 있는 메소드들을 알고 싶다면,

정보 확인
>>>print random.__doc__

내부 매소드 확인
>>>print dir(random)

을 이용해서 확인하자.

리스트 a를 이용하여 1부터 9까지의 값을 넣는다.
그리고, 카드 섞기 메소드인 shuffle을 사용하여 리스트를 섞는다.
이 중 [0],[1],[2]를 사용할 것이다.

왜 이렇게 사용한 이유는 야구 게임 규칙상 동일한 숫자가 들어가서는 안되기 때문이다.

어쨋든 먼저 컴퓨터가 원하는 값을 가지고, 게임을 시작하는데, 내가 입력한 세자리의 값을 가지고, 차근 차근 다른 리스트 b[0],[1],[2]에 넣어준다.

그리고, 이를 비교하여 Ball과 Strike를 체크하고, 3 Strike가 나오게 되면 게임에서 이기게 되는 것이다.
댓글
댓글쓰기 폼