尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗중학교 정보 수업에서 학생들이 직접 플레이하는 PC·스마트폰 웹 기반 스네이크 게임입니다. 한 판이 끝나면 학번·성명·점수가 Firebase Firestore에 저장되고, 대시보드에서 우리 반 전체의 순위를 실시간으로 확인할 수 있습니다.
정보 수업용 스네이크 게임 PRD(v1.0) 기반 구현
10130)·성명 입력, 유효성 검사bestScore 내림차순 순위표, 내 행 하이라이트, 반별 필터, 1~3위 메달.
├─ index.html # 시작 / 게임 / 게임오버 화면
├─ dashboard.html # 실시간 순위 대시보드
├─ css/style.css
├─ js/
│ ├─ game.js # 게임 엔진(이동·충돌·렌더링, 순수 로직)
│ ├─ main.js # 화면 전환 / 입력 / 저장 오케스트레이션
│ ├─ db.js # Firestore 연동(players / scores)
│ ├─ dashboard.js # 대시보드 실시간 구독
│ ├─ sound.js # 효과음(WebAudio)
│ └─ firebase-config.js # Firebase 프로젝트 설정 (채워 넣어야 함)
├─ firestore.rules # 보안 규칙 예시
└─ firebase.json # Firebase Hosting + Firestore 설정
ES 모듈을 사용하므로 file://로 직접 열면 동작하지 않습니다. 간단한 정적 서버로 실행하세요.
# Python
python3 -m http.server 8080
# 또는 Node
npx serve .
브라우저에서 http://localhost:8080 접속.
Firebase를 설정하지 않아도 게임은 로컬로 동작합니다(기록 저장/대시보드만 비활성화).
js/firebase-config.js의 firebaseConfig 값을 교체firestore.rules를 배포:npm install -g firebase-tools
firebase login
firebase deploy --only firestore:rules
players/{학번} — 학생별 최고 기록 1건
| 필드 | 타입 | 설명 |
|---|---|---|
studentId | string | 학번, 숫자 5자리 (예: 10130) |
name | string | 성명 |
className | string | 반 (예: 1-1), 대시보드 필터용 |
bestScore | number | 개인 최고 점수 |
playCount | number | 플레이 횟수 |
updatedAt | timestamp | 최고 기록 갱신 시각 |
scores/{자동ID} — 모든 플레이 로그(보조)
최고 기록 갱신은 트랜잭션으로 처리하여, 현재 점수가 기존 bestScore보다 높을 때만
bestScore/updatedAt을 갱신하고 playCount는 매판 +1 합니다.
firebase deploy --only hosting
또는 Vercel 등 정적 호스팅에 그대로 올려도 됩니다.
PC (키보드)
| 키 | 동작 |
|---|---|
| 방향키 / WASD | 상하좌우 이동 |
| 스페이스바 | 일시정지 / 재개 |
스마트폰 (터치)
| 조작 | 동작 |
|---|---|
| 보드 위 스와이프 | 스와이프 방향으로 이동 |
| 화면 하단 방향 패드(▲◀▶▼) | 상하좌우 이동 |
| 가운데 ⏸ 버튼 | 일시정지 / 재개 |
방향 패드는 터치 기기 또는 좁은 화면(≤640px)에서 자동으로 나타납니다.