본문 바로가기
C++/빙고 게임 제작

C++ 빙고 게임 제작 : 게임 결과 출력

글: 시플마 2024. 6. 14.

VictoryCheck 함수에서 914번째 줄에 있는

BingoPlay 함수가 종료되었다면 어느 한쪽(또는 둘 다) 빙고 테이블에서

3개 이상의 빙고가 완성되었다는 의미일 겁니다.

 

916 ~ 917번째 줄을 보시면

두 개의 변수에 플레이어의 빙고 완성 개수 또는

CPU의 빙고 완성 개수를 저장하고 있습니다. 

 

플레이어의 빙고 완성 개수가 더 높다면

PLAYER_WIN에 대응하는 값이 반환되고 

 

CPU의 빙고 완성 개수가 더 높다면

CPU_WIN에 대응하는 값이 반환되며,

 

플레이어와 CPU의 완성된 빙고의 개수가 같다면

무승부로 처리하기 위해 DRAW에 대응하는 값이 반환됩니다.

 

 

또한 3개의 빙고를 완성하면 승패가 결정되긴 하지만,

920번째 줄에 있는 if 문에 의해 더 많은 빙고를 완성한 쪽이

최종 승리하게 됩니다.

 

 


 

 

다시 main 함수를 살펴보면

 

36번째 줄에 Result 함수가 보입니다. 

 

 

Result 함수는 승부의 결과를 

 

최종적으로 콘솔에 출력하는 역할을 하는 함수입니다.

 

VictoryCheck 함수가 반환한 값을 인자로 받습니다.

 

우선 gotoxy 함수를 통해 메시지를 출력할 곳으로

커서를 옮긴 후 배경을 초록색으로 합니다.

 

그리고 인자로 받은 값이 무엇이냐에 따라 무승부, 플레이어 승리,

CPU 승리 메시지와 소리를 출력합니다. 

 

승부 결과를 출력해 주었다면 

엔터를 입력하면 메인 화면으로 이동한다는 메시지를 띄웁니다.

 

 

247번째 줄에 있는 while 문을 통해

실제로 엔터를 입력해야 Result 함수가

종료될 수 있도록 하는 역할을 합니다.

 

엔터가 입력되었다면 254번째 줄에 의해 

빙고 테이블과 메시지가 지워질 겁니다.

 

 

이후 다시 메인 메뉴를 다시 출력하게 될텐데

 

그 전에 75번째 줄에 있는 externInit 함수를 호출합니다.

 

 

externInit 함수는 외부 변수를 다시 초기화하는 함수입니다.

 

사용한 외부 변수를 다시 초기화해 주어야

다음 판을 진행하였을 때 문제가 발생하지 않겠죠?

 

이런 초기화 과정이 없으면 

가로 빙고 체크 0번 패턴이 true로 설정되어 있어 

가로 빙고 체크 0번 패턴이 생략된다거나 하는

문제가 발생할 수 있습니다.

 

 

externInit 함수 호출까지 마무리 되었다면 

다시 main 함수 19번째 줄에 있는 while 문으로 돌아가

Menu 함수를 호출하며 게임이 재시작될 것입니다.

 

 

 


 

 

 

 

아래 영상은 빙고 게임 플레이 영상입니다.

 

https://tv.kakao.com/channel/10045751/cliplink/447427283