버그스위퍼 (Bug Sweeper)
버그스위퍼는 지뢰찾기 방식으로 숨어 있는 버그를 피해 안전한 칸을 모두 열어야 하는 디버깅 퍼즐 게임입니다. 단계가 올라갈수록 보드가 커지고 버그 수가 늘어나며, 마지막 5단계를 클리어하면 타임 보너스가 더해집니다.
난이도(레벨) 구조
-
총 5단계이며 코드상
levels로 정의됩니다. - 1레벨:
6x6, 버그3 - 2레벨:
8x8, 버그6 - 3레벨:
10x10, 버그15 - 4레벨:
12x12, 버그30 - 5레벨:
14x14, 버그55
조작 방법
- PC: 좌클릭은 칸 열기, 우클릭은 깃발(의심 표시) 토글.
- 모바일: 짧게 터치하면 열기, 500ms 롱프레스면 깃발 토글.
-
롱프레스 성공 시 진동(
navigator.vibrate(50))이 실행되어 피드백을 줍니다.
핵심 로직
- 초기화 시 보드 배열에서 무작위로 버그를 배치하고, 각 셀의 주변 8칸 버그 수를 계산합니다.
-
숫자가 0인 칸을 열면 인접 셀을 재귀로 열어가는 플러드필 형태(
revealCell)가 적용됩니다. - 이미 열린 칸/깃발 칸은 클릭 무시, 게임 종료 후에는 모든 입력을 막습니다.
점수 계산과 클리어
-
기본 점수는
(currentLevel - 1) * 1000 + (안전 셀 오픈 수 * 10)입니다. - 버그를 밟으면 즉시 게임 오버, 버그 칸이 공개됩니다.
- 안전 셀을 모두 열면 레벨 클리어 모달이 뜨고 다음 단계로 진행합니다.
-
5레벨 올클리어 시
max(0, 1000 - timeElapsed)타임 보너스를 추가해 최종 점수를 계산합니다.
랭킹 등록
-
게임 오버/올클리어 모두 랭킹 모달에서 등록 가능하며,
saveGameScore("bugsweeper", nickname, finalScore)를 사용합니다. - 닉네임은 공백 제외 최소 2자입니다.
-
「다시 시작」은 항상 1레벨부터 재시작하도록
currentLevel = 1로 초기화됩니다.
플레이 팁
- 초반에는 숫자 1, 2가 겹치는 모서리부터 풀면 안전 셀 확장이 빠릅니다.
- 모바일은 오탭 방지를 위해 위험 칸 추정 시 롱프레스 깃발을 먼저 쓰는 편이 안정적입니다.
- 올클리어 보너스가 크므로 5레벨에서는 무리한 추측보다 타이머 손실을 줄이는 안정 플레이가 유리합니다.