본문 바로가기

Programming Language/C, C++

[Snake Game] 0. 뱀 게임(Snake Game)


0. 뱀 게임 (Snake Game)


0. Intro

프로그래밍 언어를 효과적으로 공부하는 방법이 여럿 있겠지만, 무언가를 직접 만들면서 공부하는 것이 가장 으뜸이라 생각한다. 본인도 중학교 고등학교 다닐 때 테트리스나 에니그마 같은 것들을 코드로 작성해보며 c와 C#을 공부했다.

c언어로 만들 수 있는 간단한 것들 중 가장 대표적인 것이 바로 뱀 게임이다. 앞으로 c언어로 뱀게임을 만들어 보면서 basic c language 카테고리의 글의 내용을 직접 사용해 볼 것이다.


1. 뱀 게임이란

Snake game은 1970년대부터 지금까지 꾸준히 생산되고 소비되는 매우 간단하고 직관적인 게임이다. 본인의 아버지께서 1969년 출생이시고, 회사에 들어가고 나서 콘솔을 처음 접하셨다고 하니, 뱀게임의 역사가 상당히 유구하다는 것을 알 수 있다.

그 규칙이 매우 간단한데 아래와 같다.

1. 뱀은 상하좌우 중 한 방향으로 멈추지 않고 움직인다.

2. 맵에 먹이가 하나(혹은 그 이상) 생성되며, 뱀이 먹이를 먹으면 몸통의 길이가 길어진다.

3. 뱀이 벽이나 자신의 몸통에 부딪히면 게임오버

4. 뱀의 몸이 맵을 가득 채우면 게임 승리

한 번 해보고 싶은 사람은 구글에 "snake game"이라 검색하면 이스터에그 같은 느낌으로 구글이 제공하는 뱀게임을 해볼 수 있다. 의외로 퀄리티가 상당히 좋다.


2. 왜 뱀 게임인가?

본인은 게임 개발을 별로 좋아하지 않는다. 다른 프로그램보다 생각해야 할 부분이 많고, 번거로운 부분이 많기 때문이다. 간단해 보이는 테트리스도, 블럭을 일일이 생성해주어야 하고, 블럭을 돌려야 하고, 스페이스바나 아래방향 키를 누르면 더 빠르게 내려가야 하는 등 고려해야 하는 부분이 상당히 있다.

하지만 뱀게임은 굉장히 간단하다. 상하좌우로 움직이며, 먹이를 먹으면 몸이 길어지고, 벽이나 자기 몸에 닿으면 게임이 끝난다. 또 게임이 속도감 있게 흘러가기 때문에 개발하는 과정에서 플레이 하는 재미와 성취감이 있다. 이런 장점이 있기 때문에 처음 c언어를 공부하는 사람들에게 자주 추천되는 프로젝트 주제가 바로 뱀게임이다.


3. 앞으로는

basic c language에서 살펴본 c언어 내용을 직접 사용해보며 뱀게임을 만들 것이다. 본인의 개발환경은 Visual Studio 2017 community 이며, 사용 언어는 c++이 살짝 가미된 c이다. 최종 완성본은 FM대로의 뱀게임에 나만의 이스터에그를 살짝 끼얹은 나만의 뱀 게임이 될 것이다.