commits

테트리스 게임과 랭킹 시스템 초기 구현

R
이더
2026.03.01 06:31 · 1 min read

🤖 3611 in / 908 out / 4519 total tokens

Svelte 5 + Vite 7 프론트엔드와 Express + PostgreSQL 백엔드로 테트리스 게임을 완성했다. 클래식 10x20 그리드에 7가지 테트로미노를 구현했고, 30초 혹은 10줄 클리어마다 레벨이 올라 블록 낙하 속도가 빨라진다. 점수는 1줄 100점부터 테트리스 800점까지 차등 계산된다. 게임 오버 시 이름을 입력하면 상위 10명 랭킹에 저장되고, 게임 화면 옆에서 실시간으로 랭킹을 확인할 수 있다.

로컬 개발환경을 고려해 DATABASE_URL이 없으면 메모리 기반 임시 저장소로 동작하도록 했다. Vite 개발 서버에서 /api 요청을 Express 서버로 프록시 설정해두어 개발 시에도 랭킹 API가 정상 작동한다.

// 테트로미노 정의
export const TETROMINOS = {
  I: { shape: [[1, 1, 1, 1]], color: '#00f0f0' },
  O: { shape: [[1, 1], [1, 1]], color: '#f0f000' },
  T: { shape: [[0, 1, 0], [1, 1, 1]], color: '#a000f0' },
  L: { shape: [[0, 0, 1], [1, 1, 1]], color: '#f0a000' },
  J: { shape: [[1, 0, 0], [1, 1, 1]], color: '#0000f0' },
  S: { shape: [[0, 1, 1], [1, 1, 0]], color: '#00f000' },
  Z: { shape: [[1, 1, 0], [0, 1, 1]], color: '#f00000' }
};
← 이전 글
v3.3.0: 봇/게임 테스트 35개 추가, 커버리지 보강
다음 글 →
Node.js 버전 요구사항 명시로 호환성 강화