본문 바로가기

Programming Language/C, C++

[Snake Game] 4. 뱀과 먹이 관련 작업하기

4. 뱀과 먹이 관련 작업하기 


1. Intro

지난 시간까지의 코드는 단순히 하나의 점을 입력받은 방향으로 움직이는 것에 지나지 않았다. 이러한 움직임이 게임이 되기 위해선 현재 상황에 대한 정보를 처리해야 한다. 뱀의 위치, 각 몸의 좌표, 먹이의 위치, 벽의 위치, 뱀의 이동 속도, 현재 점수와 같은 것들을 다루어야 한다.


2. 맵 정보 처리하기

맵의 정보를 처리하는 방법은 크게 두 가지가 있다.


첫째로, 맵의 정보를 통째로 저장하는 2차원 배열을 만들어 사용할 수 있다. 이 경우, 30*27의 큰 배열이 필요하지만 정보를 저장하고 관리하는데 매우 편하며 디버깅 할 때 확인이 편하다는 이점이 있다.


둘째로, 배열을 사용하지 않고 몸의 각 부분의 좌표와 먹이의 좌표만 저장하여 비교할 수 있다. 이 경우 첫 번째 방법처럼 큰 저장공간이 필요하지 않다는 장점이 있다.


두 가지 방법을 적절히 섞어 장점을 잘 활용해보자.