베스킨라빈스 31 게임의 자세한 내용은 다음 링크를 참고하자

https://namu.wiki/w/%EB%B0%B0%EC%8A%A4%ED%82%A8%EB%9D%BC%EB%B9%88%EC%8A%A4(%EA%B2%8C%EC%9E%84) 

 


간단히 정리해보면, 

1. 나와 컴퓨터 모두 한 턴에 1회 ~ 3회까지만 숫자를 외칠 수 있음

2. 31을 외치는 사람이 지는 것이다.

 

이런 규칙으로 컴퓨터와 대결하는 간단히 프로그램을 파이썬으로 작성해보면 다음같이 작성할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
def baskin31():
    import random
    current_number = 0  # 현재 숫자
    while True:
        # list(map(int, input().split()))을 통해서 input값을 빈칸을 구분자로 하여 int형으로 받아서 list로 저장하라는 뜻이다.
        player = list(map(int, input("Player는 숫자를 입력하세요: ").split()))
        # player는 숫자 3개까지만 입력이 가능하다
        if len(player) > 3:
            print("숫자는 3개까지만 입력이 가능합니다.")
            continue
        # 숫자는 이전 값(=현재 숫자) 보다 1만큼 큰 숫자로 시작해야 한다.
        if player[0!= current_number + 1:
            print("이전의 숫자보다 1만큼 큰 숫자로 시작해야 합니다.")
            continue
        # 숫자는 연속적으로 입력되어야 한다.
        if len(player) == 3:
            if player[2- player[1!= 1 or player[1- player[0!= 1:
                print("연속된 숫자가 입력되어야 합니다.")
                continue
            else:
                current_number = player[2]
        elif len(player) == 2:
            if player[1- player[0!= 1:
                print("연속된 숫자가 입력되어야 합니다.")
                continue
            else:
                current_number = player[1]
        elif len(player) == 1:
            current_number = player[0]
 
        # 현재 숫자는 player 리스트의 가장 끝 index에 해당하는 정수값이다.
        current_number = player[-1]
        print(f"현재 숫자 : {current_number}")
 
        # player가 31 이상의 숫자를 선택할 시에 패배한다.
        if current_number >= 31:
            print("\nPlayer가 패배했습니다.")
            break
 
        # 현재 숫자에서 31이 되기까지 남은 차례를 remaining_turn이다. line 52에서 사용된다.
        remaining_turn = 31 - current_number
        computer = list()
        computer_turn = random.randint(13)
        for i in range(computer_turn):
            current_number += 1
            computer.append(current_number)
            # 컴퓨터 입장에서 승리를 하기 위해서 31 이전의 숫자까지 선택한다.
            # 하지만 31밖에 선택지가 없으면 31을 선택 후 끝낸다.
            if current_number >= 31:
                print(f"컴퓨터 : 31")
                break
            if computer_turn <= remaining_turn:
                print(f"컴퓨터 : {current_number}")
                continue
        print(f"현재 숫자 : {current_number}\n")
 
        # 컴퓨터가 31을 선택할 시에 player의 승리
        if computer[-1== 31:
            print("Player가 승리했습니다.")
            break
 
 
# 숫자 게임을 시작하자
print('=' * 30)
print("\t베스킨라빈스31 게임 시작!")
print('=' * 30)
baskin31()
 
cs

 

+ Recent posts