로딩
티스토리 데이터 처리 중입니다.

[Python 3] 지렁이 게임

 [Python 3] 지렁이 게임

게임은 파이게임을 이용해 실행되며 먼저 화면 크기와 초기 설정을 구성합니다. 화면은 가로 600 픽셀, 세로 400 픽셀로 고정하고 상단 100 픽셀은 점수 영역으로 남겨 두고 그 아래 영역에서 뱀과 먹이가 움직이도록 합니다. 디스플레이 창의 제목은 Snake Game으로 설정합니다. 먹이와 뱀은 일정한 블록 크기로, 방향키 입력에 따라 상하좌우로 움직이며 먹이는 뱀과 충돌하지 않는 범위에서 무작위로 생성됩니다.

게임의 핵심 동작은 무한 루프 속에서 진행되며 점차 빨라지는 난이도와 길이 증가를 통해 진행됩니다. 뱀의 몸은 여러 개의 블록으로 이루어져 리스트에 저장되며, 매 프레임마다 머리의 위치를 갱신하고 충돌 여부를 확인합니다. 벽에 닿거나 자기 몸과 충돌하면 게임 종료 상태로 전환되며 종료 시점에는 현재 점수와 최고 점수가 화면에 표시됩니다. 재시작은 Enter 키로 가능하며, 종료 후 3초간 대기하는 로직도 포함됩니다.

난이도와 점수 시스템은 먹이를 먹을 때마다 점수가 증가하고 뱀의 길이가 길어집니다. 또한 10초마다 게임 속도가 증가해 난이도가 상승합니다. 먹이를 생성하는 함수는 안전한 영역 내에서 위치를 무작위로 결정하며 경계로부터 일정 여유를 두도록 설계되어 있습니다. 최고 점수는 게임 동안 갱신되며 화면 좌측상단에 계속 표시됩니다.

전체 코드는 파이게임 초기화, 색상 정의, 화면 크기 설정, 블록 영역 정의, 폰트 설정, 점수 출력 함수, 뱀 그리기 함수, 먹이 생성 함수, 게임 종료 처리 함수, 게임 루프 함수로 구성됩니다. 게임 루프 내에서는 방향 입력 처리, 벽 충돌 여부 확인, 뱀의 머리 위치 갱신, 먹이와의 충돌 여부 확인, 점수 및 난이도 관리가 순차적으로 진행됩니다. 종료 시에는 최고 점수를 갱신하고 재시작 흐름이 작동합니다. 추가적으로 점수 표시 공간과 블록 생성 공간 간의 시각적 구분, 먹이 획득 시 뱀의 길이가 자연스럽게 늘어나는 인터페이스, 점수에 따른 난이도 상승, 10초 주기로의 난이도 자동 상승, 최고 점수 표기, 게임 종료 후 재시작 지연 등의 보완점이 반영됩니다.