게임 프로그래밍
스네이크 게임 구현
- 사방이 막혀있는 네모난 공간에 플레이어가 조종하는 뱀 한 마리가 놓여진다.
- 뱀은 현재 머리가 향하고 있는 방향으로 멈추지 않고 이동한다. 플레이어의 조작으로는 머리가 진행하는 방향만 바꿀 수 있다.
- 뱀이 벽이나 자신의 몸 일부에 머리를 부딪히면 죽는다.
- 목적은 화면에 놓여있는 먹이를 모두 먹는 것이다.
- 먹이를 먹을 때마다 뱀의 길이가 길어지고, 진행 속도가 빨라진다. (게임 난이도 ↑)
- 그리드 행(rows)/열(colums)/총(total) 개수를 상수로 설정합니다.
- 스퀘어(square) 요소를 생성하는 함수를 작성합니다.
- 스퀘어 집합(squares) 배열을 생성합니다.
- 스퀘어를 그리드(grid)에 드로잉하는 함수를 작성합니다.
- 스네이크(snake)를 드로잉하는 함수를 작성합니다.
- 스네이크를 이동(move)하는 함수를 작성합니다.
- 스네이크를 방향키(← ↑ → ↓)로 이동할 수 있도록 구현합니다.
- 시작, 정지 버튼을 클릭해 게임이 시작, 정지하도록 구현합니다.
- 스네이크가 벽에 부딪히거나, 스네이크 몸에 부딪힐 경우 게임이 종료되도록 구현합니다.
- 애플이 스네이크와 겹치지 않게 그리드 위에 배치되도록 드로잉하는 함수를 작성합니다.
- 스네이크가 애플을 먹으면 애플이 제거된 후, 다시 임의의 다른 위치에 생성되도록 구현합니다.
- 스네이크가 애플을 먹으면 점수(score)가 올라가도록 구현합니다.
- 스네이크가 애플을 먹으면 스네이크의 길이가 길어지도록 구현합니다.
- 스네이크가 애플을 먹으면 게임 난이도(speed)가 빨라지도록 구현합니다.
- 게임 시작, 다시 시작, 정지 기능이 작동되도록 구현합니다.