Skip to content

kkomakk/snake_game.project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Snake Game (C++ / ncurses) ───────────────────────────────

🎮 프로젝트 개요 이 프로그램은 C++ 기반 콘솔 환경에서 제작한 Snake Game입니다. 단순한 게임 구현이 아니라, 실시간 입력 처리, 충돌 판정, 프레임 제어 구조를 직접 설계하여 콘솔 환경에서도 부드럽게 동작하는 게임 루프를 완성했습니다. ncurses 라이브러리를 이용해 터미널 환경에서 시각적인 움직임을 구현했으며, 게임 로직과 충돌 판정 모듈을 중심으로 개발했습니다.

───────────────────────────────

🧩 개발 환경 및 기술 스택 • 언어 : C++17 • 라이브러리 : ncurses 6.5 • 개발 환경 : macOS / Linux (터미널 기반) • 빌드 도구 : g++

───────────────────────────────

📁 프로젝트 구조

snake_game.project/ │ ├─ main.cpp → 메인 루프 및 초기화 ├─ map.cpp → 맵 생성과 출력 로직 ├─ snake.cpp → Snake 이동 및 충돌 처리 ├─ snake.h → Snake 클래스 정의 ├─ ncurses-6.5/ → ncurses 라이브러리 ├─ main → macOS 실행 파일 ├─ snake_game → Linux 실행 파일 └─ README.md → 프로젝트 설명 파일

───────────────────────────────

⚙️ 주요 기능

실시간 입력 처리

getch()를 이용해 입력 지연 없이 방향 전환

반대 방향 즉시 입력 방지로 부드러운 이동 구현

충돌 판정

Snake 머리가 벽이나 자신의 몸과 닿으면 게임 종료

벡터를 이용한 좌표 갱신으로 효율적인 충돌 검사

게임 루프 구조

일정한 속도로 입력 → 갱신 → 렌더링 순환

코드 구조 예시

while (true) { input(); update(); render(); }

아이템 및 점수 시스템

랜덤 위치에 음식 생성

Snake가 먹이를 먹으면 길이 증가 및 점수 1점 추가

───────────────────────────────

🚀 실행 방법

(1) ncurses 설치 (Ubuntu 기준) sudo apt-get install libncurses5-dev libncursesw5-dev

(2) 빌드 g++ main.cpp map.cpp snake.cpp -lncurses -o snake_game

(3) 실행 ./snake_game

※ Windows 환경에서는 기본 콘솔 대신 WSL(Ubuntu)에서 실행을 권장합니다.

───────────────────────────────

🖼️ 게임 예시 화면 • 시작 화면 → Snake 이동 → 충돌 시 게임 종료 • 실행 예시 캡처 이미지는 assets/screenshots/ 디렉터리에 추가 예정입니다.

───────────────────────────────

💡 개선 방향 • 난이도 조절 기능 추가 (속도 증가, 맵 크기 확장) • 점수 저장 및 순위 시스템 구현 • 코드 리팩터링 (GameManager, Renderer 구조 분리) • SFML 기반 그래픽 버전으로 확장 계획

───────────────────────────────

👨‍💻 개발자 정보 이름 : 이지수

역할 : Snake 이동 로직, 충돌 판정, 게임 루프 구조 설계

GitHub : github.com/kkomakk

───────────────────────────────

🎯 프로젝트 의의 이 프로젝트는 콘솔 환경에서도 실시간 처리가 가능한 게임 루프 구조를 직접 구현하며, C++의 객체지향적 설계와 입력 처리 메커니즘을 학습하기 위해 제작되었습니다. 단순한 콘솔 게임이지만, 프로그램의 흐름 제어와 데이터 일관성 유지 등 시스템 구조를 설계하는 감각을 익히는 데에 큰 도움이 되었습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors