Stage 1 - 베스킨라빈스 31!

베스킨라빈스 31 게임 다들 한번쯤은 해보셨죠? 이번 시간에는 베스킨라빈스 31 게임을 만들어봅니다. 우선은 게임에 대해 이해하고 만들어봐요.

베스킨라빈스 31! 귀엽고 깜찍하게!

단체로 모여서 게임을 진행할 때, 이 게임은 꼭 해보셨을 것 같아요! 자기 차례에 최대 3개까지 말을 할 수 있고 결국 마지막에 31을 말한 사람이 벌칙을 받게 되는 게임이죠! 쉬우면서도 참 긴장감이 있는 게임입니다다. 우리는 이번 시간에 이 게임을 컴퓨터와 대결해보도록 할 꺼 에요! 그리고 필승전략을 알려드릴테니, 잘 이해하시고 친구들에게 써먹어 보세요!

베스킨라빈스 31 게임

베스킨라빈스 31 알고리즘

기존 게임과의 차이

기존에 단체로 하는 베스킨라빈스 31과 우리가 만들 베스킨라빈스 31은 큰 차이가 있습니다! 바로 1대1로 대결을 진행합니다!

1대1 베스킨라빈스 31

컴퓨터와의 대결을 펼치는 베스킨라빈스 31을 만듭니다. 지난 시간에 야구게임을 만들었을 때 처럼 우선은 순서도를 먼저 그려보겠습니다. 그래야 코딩을 잘할 수 있으니까요!

베스킨라빈스 31 순서도

아래 보이는 그림은은 우리가 앞으로 만들 베스킨라빈스 31의 순서도입니다. 코딩하기 전부터 이렇게 그리는 것은은 야구 게임을 만들 때도 말씀드렸지만 거의 불가능합니다. 그래서 간단하게나마 여러분의 생각으로 순서도를 그려보시길 바랍니다.

베스킨라빈스 31 순서도

간략한 순서도

간략하게 그리게 되면 아래와 같이 그릴 수 있지 않을까 생각됩니다.

간단한 베스킨라빈스 31 순서도

순서도 이해하기

순서 정하기

컴퓨터와 대결을 펼치기에 앞서 먼저는 누가 먼저 시작을 할지 정하는 것이 중요합니다. Challenge 2에서 우리가 배우겠지만, 사실 이 게임은 누가 먼저 시작하느냐에 따라 승패가 좌우되는 게임이기 때문이죠.

순서 정하기

한 가지 유의할 사항이 있습니다. '먼저 시행하다'의 뜻 입니다. 선공은 전체의 순서중에 홀수번에 (1, 3, 5 ...) 번호를 부르겠다는 뜻 입니다. 반대로 후공은 짝수번째에 (2, 4, 6 ...)에 번호를 부르겠다는 이야기 입니다. 이해가 되시죠? 그래서 우리는 사용자의 순서를 정하기 위해 입력으로 0 또는 1을 받아서 홀수인지 짝수인지 구분을 합니다.

루프 돌리기

입력을 받아 게임이 시작되면 서로가 번호를 호출하는 반복적인 과정이 이루어집니다. 이 반복이 시행될 때에는, 차례에 해당하는 사용 또는 컴퓨터를 구분하여 누구의 차례든지 1~3을 말합니다. 그리고 말할 때, 31을 말하면 반복과 게임이 종료됩니다.

번호 부르기 반복

이긴 사람 판별하기

반복이 종료되면 이긴 사람을 판단합니다. 이긴 사람은 31을 말하지 않은 사람입니다. 반복이 종료되고, 그 다음이 누구의 순서인지 판별하여 이긴 사람을 구별하여 냅니다.

31을 말한 다음 사람