이번에 스터디를 새로 모집을 하였는데, 처음 테스트에서 생각보다 C언어에 대한 기초가 좀 부족했습니다.

그래서 C언어에 대해서 직접 공부를 할 겸, 어떠한 프로젝트를 내주면 괜찮을까? 생각하다가 나온 것이 바로 뱀 게임을 만드는 것이었습니다.


뱀 게임이라 함은, 보통 우리가 잘 아는 지렁이 비슷한 것이 기어다니고, 맵에 먹이가 있어서 하나를 먹을 때마다, 뱀의 몸통 길이가 하나씩 늘어나는 게임입니다.

이걸 그냥 만드는 것은 좀 의미가 없고, 의도 자체는 C언어 학습이기 때문에 몇가지 제약 조건을 걸었습니다.


1. C++의 일부 기능을 사용해도 되지만, class, new, delete, stl은 사용하지 않는다.
malloc과 free, 그리고 memset등을 이용하세요.
2. 뱀은 무조건 개별적으로 제작한 struct를 이용한 링크드 리스트여야 한다.
3. struct 안에 함수를 만들지 않는다. struct는 변수만을 가진다.
4. 게임의 스테이지는 최소한 3개가 되어야 하며, 스테이지가 종료되면 뱀은 초기 길이로 돌아간다.(뱀의 초기 길이는 자유, 하지만 2개 이상)
5. 뱀의 몸을 구성하는 구조체는 최소한 x와 y의 좌표값을 가지고 있어야 한다.
6. 게임에는 지도가 존재해야 하며, 지도는 벽과 먹이에 대한 정보를 가지고 있어야 한다.
7. 벽에 부딪히면 뱀은 죽으며, 먹이를 먹으면 길이가 늘어난다.
8. 지도는 2차원 배열로 구현한다.
9. 지도에는 뱀의 위치가 절대로 기록되서는 안되며, 콘솔창에 보여줄 때에는 해당 위치가 뱀에 해당하는지 언제나 링크드 리스트를 참조해서 나온다.
10. 화면은 1초마다 업데이트 되어야 한다.(즉, 뱀은 해당 방향으로 1초에 한칸씩 움직인다.)


아시는 분들은 제가 하고자 했던 의도를 파악하셨으리라 생각합니다.

기대하고 있는 부분은 전체적으로 C언어 레벨에서의 능력 향상입니다.

한달 안에 완성하는 것이 목표이기는 한데, 얼마나 완성이 될지는 좀 걱정입니다.


어차피 저도 소스를 구현하고 추후에 설명을 해주어야 하는 부분이 있기 때문에, 짬짬이 코딩을 해서 SVN에 올리고, 이와 관련된 내용을 블로그에 게시할 생각입니다.

오픈소스로 언제든지 아래의 주소에서 확인하실 수 있습니다.

그리고 이번 프로젝트는 다른 참가자들은 Visual Studio로 진행하고, 저는 XCode로 진행할 예정입니다.


http://gaucho1218-sample-project.googlecode.com/svn/trunk/SnakeGame/


감사합니다.

저작자 표시 비영리 변경 금지
신고

'Applications > SnakeGame' 카테고리의 다른 글

Snake Game(뱀 게임) - 4  (0) 2014.05.18
Snake Game(뱀 게임) 제작 규칙 수정  (0) 2014.03.27
Snake Game(뱀 게임) - 3  (0) 2014.03.27
Snake Game(뱀 게임) - 2  (0) 2014.03.14
Snake Game(뱀 게임) - 1  (0) 2014.03.11
Snake 게임 제작  (0) 2014.03.10
by 가우초 2014.03.10 13:46