8.7 KiB
8.7 KiB
한글 십자말풀이 스테이지 생성 규칙 및 가이드라인 (Stage Rules & Guidelines)
본 문서는 **한글 십자말풀이 앱(WordPuzzle)**의 스테이지를 지속적으로 확장(50개, 100개 이상)하기 위한 난이도 설계, 그리드 무결성 룰, 단어 배치 가이드라인 및 JSON 데이터 스키마를 정의합니다.
1. 스테이지 단계별 구조 및 난이도 진도 설계 (Difficulty Progression Strategy)
초반 스테이지의 진입 장벽을 낮추고 플레이어가 자연스럽게 어휘력을 확장할 수 있도록 완만한 난이도 상승 곡선(Progressive Difficulty Curve)과 풍성한 단어 밀도를 적용합니다.
| 스테이지 구간 | 난이도 (difficulty) |
그리드 크기 (gridSize) |
배치 단어 수 (clues.size) |
주요 단어 구성 및 어휘 특징 |
|---|---|---|---|---|
| 01 ~ 10 | Level 1 (입문/초보) | 6x6 ~ 7x7 | 6 ~ 8개 | 100% 기초 일상 어휘 (학교, 과일, 가족, 동물, 수영, 구름 등 초등 기초 어휘만 사용, 공간이 비지 않도록 알차게 배치) |
| 11 ~ 20 | Level 1 (초급) | 7x7 | 7 ~ 9개 | 쉬운 일상 단어 + 실생활 고빈도 최고 쉬운 사자성어 1개 (일석이조, 작심삼일, 남녀노소 등) |
| 21 ~ 40 | Level 2 (중급) | 7x7 ~ 8x8 | 8 ~ 10개 | 일반 어휘 + 한국어 교육용 고빈도 사자성어 (127개 핵심 사자성어) + 글로벌 기업 |
| 41 ~ 70 | Level 2~3 (상급) | 8x8 | 9 ~ 11개 | 시사상식, 글로벌 기업 브랜드, 인문학, 고사성어 |
| 71 ~ 100+ | Level 3 (마스터) | 8x8 | 10 ~ 12개 | 고난도 고사성어, 문화/역사/과학 종합 어휘 마스터 |
- 참고 자료: '한국어 교육용 사자성어 선정 및 사용 양상 분석(진달래, 2020)' 논문의 127개 고빈도 사자성어 목록을 기반으로 사자성어의 난이도를 단계별로 배치했습니다.
2. 십자말풀이 그리드 및 단어 배치 룰 (Grid Layout & Placement Rules)
모든 스테이지의 clues 단어 배치는 다음 수학적/구조적 조건을 반드시 만족해야 합니다.
① 좌표계 및 이동 규칙
- 좌표 기준: 그리드의 좌측 상단이
(row: 0, col: 0)입니다. - 가로 방향 (
ACROSS):(startRow, startCol)에서 시작하여 오른쪽으로length만큼 이동합니다.\text{범위}: \text{startCol} + \text{length} \le \text{gridSize} - 세로 방향 (
DOWN):(startRow, startCol)에서 시작하여 아래쪽으로length만큼 이동합니다.\text{범위}: \text{startRow} + \text{length} \le \text{gridSize}
② 단어 및 글자 배치 규칙
- 최소 단어 길이: 가로나 세로로 나열되는 단어는 최소 2글자 이상이어야 합니다. 1글자짜리 단어는 인정되지 않습니다 (
length >= 2). - 공통 글자 공유: 가로 단어와 세로 단어가 만나는 교차점의 글자는 두 단어 모두에 완벽하게 일치해야 합니다.
- 띄어쓰기 생략: 두 단어 이상으로 이루어진 복합어나 구절을 답으로 쓸 때는 띄어쓰기 없이 칸을 이어 붙여서 작성합니다.
③ 교차점 (Intersection) 및 연결성 (Connectivity)
- 단어 간 교차 필수: 퍼즐 내의 모든 단어는 최소 1개 이상의 다른 단어와 교차점(같은 한글 문자를 공유하는 좌표)을 형성해야 합니다.
- 서브 퍼즐 허용: 단어 수가 많고 그리드 공간이 넓을 경우 2개 이상의 유기적 서브 퍼즐로 나누어 구성할 수 있으며, 각 서브 퍼즐은 최소 2개 이상의 단어가 교차해야 합니다. (단독 1개짜리 외딴 단어 배치 금지)
④ 인접 글자의 무의미한 단어 조합 방지 규칙
- 의미 없는 유령 단어 조합 지양: 단어들이 나란히 배치될 때 교차점이 아닌 인접 칸에 글자들이 나란히 놓여, 가로나 세로 방향으로 읽었을 때 의미가 성립되지 않는 불필요한 글자 조합(예: "름기차")이 생기는 배치는 완벽히 차단해야 합니다.
- 방향성 유효성: 가로나 세로 어떤 방향으로 읽더라도 올바른 정답 단어로만 읽히도록 단어 사이의 공간(검은 칸/빈 공간)을 확보하여 배치합니다.
- 색상 및 시각적 구분: 게임 화면 내에서 단어별 고유 파스텔 배경 색상 및 테두리로 각 단어의 구획을 확실하게 표시하여 사용자가 혼동하지 않도록 처리합니다.
⑤ 퍼즐 독립 구성 및 단독 단어 배치 지양
- 자연스러운 연결성 우선: 한 스테이지에 1개 이상의 독립된 퍼즐이 구성될 수는 있으나, 이는 필수 조건이 아닙니다.
- 억지 단독 배치 지양: 연결 고리가 없이 1개의 단어만 따로 떨구어 단독 배치하는 방식으로 억지로 퍼즐 개수를 늘리지 않으며, 교차점을 통해 서로 유기적으로 연결된 완성도 높은 퍼즐 구성을 최우선으로 합니다.
⑥ 시작 힌트 문자 50% 이하 제한 규칙
- 단어별 힌트 비율 제한: 스테이지 시작 시 (또는 문자 새로고침 시) 무작위로 배치되는 시작 힌트 문자는, 어떤 단어이든 그 단어를 구성하는 전체 문자 수(
clue.length)의 50% 이하(\le \lfloor \text{length} \times 0.5 \rfloor)까지만 채워지도록 제한합니다. - 과도한 자동 정답 방지: 2~3글자 단어의 경우 최대 1글자까지만 시작 힌트로 허용하여, 시작하자마자 특정 단어가 통째로 채워지거나 거의 다 풀어져버려 게임의 재미가 반감되는 현상을 근본적으로 차단합니다.
⑦ 2글자 이상 부분 문자열 중복 단어 포개짐 금지 규칙
- 2글자 이상 중복 포개짐 금지: 한 스테이지 안에서 임의의 두 단어가 2글자 이상 동일한 연속 문자열을 공유하는 경우(예: "사랑"과 "사랑방", "기차"와 "기차표", "변호"와 "변호사", "리본"과 "리본끈" 등), 두 단어를 한 스테이지에 동시에 배치하거나 가로/세로 상에 포개어 만드는 구성을 엄격히 금지합니다.
- 단일 교차점 원칙: 서로 다른 단어 간의 교차점(Intersection)은 오직 1글자 단일 교차로만 형성되어야 합니다.
⑧ 힌트 보유 제한(최대 5개) 및 일일 무료 시청 제한(3회)
- 최대 보유 제한: 보유할 수 있는 힌트 개수는 최대 5개로 제한됩니다. 보유 힌트가 5개일 경우 광고 시청 버튼이 비활성화되며 추가 힌트 충전이 불가능합니다.
- 일일 무료 시청 제한: 힌트를 충전하기 위한 일일 무료 광고 시청 한도는 3회로 지정됩니다. (매일 자정에 초기화)
⑨ 그리드 내 퍼즐 가로/세로 정중앙 배치 규칙
- 중앙 밸런스 배치: 퍼즐 단어 배치가 그리드의 우측, 좌측, 상단, 하단 등 한쪽 귀퉁이나 구석으로 쏠리는 현상을 완벽히 차단합니다.
- 자동 오프셋 정렬: 퍼즐 전체 단어들이 차지하는 바운딩 박스(Bounding Box:
min_r, max_r, min_c, max_c)를 계산한 후, 그리드의 가로/세로 정중앙 중심점과 일치하도록 이동 오프셋(\Delta r, \Delta c)을 자동 적용하여 시각적 균형감을 극대화합니다.
3. JSON 스키마 명세 (stages.json)
스테이지 데이터는 app/src/main/assets/data/stages.json에 저장되며, 다음 스키마를 엄격히 준수합니다.
[
{
"stageNumber": 1,
"title": "첫걸음: 풍성한 쉬운 단어 I",
"gridSize": 6,
"difficulty": 1,
"clues": [
{
"id": "c1_1",
"number": 1,
"direction": "ACROSS",
"word": "생일파티",
"clue": "태어난 날을 축하하기 위해 여는 잔치.",
"startRow": 2,
"startCol": 1,
"length": 4
}
]
}
]
4. 주제 및 단어 데이터 연동 가이드라인 (Theme & Vocabulary)
- words.json 연동:
- 퍼즐 단어장에 소속된 단어 카테고리(
"스테이지 단어","고사성어","글로벌 기업","일반")를 적극 활용합니다.
- 퍼즐 단어장에 소속된 단어 카테고리(
- 다양한 주제 테마 배치:
- 초반 (01~10): 학교, 음식, 가족, 동물, 자연 등 100% 기초 일상어 (단어 6~8개 풍성하게 배치)
- 중반 (11~40): 일상어 + 실생활 고빈도 필수 사자성어 + 글로벌 기업 브랜드
- 후반 (41~100): 시사상식, 고사성어, 글로벌 기업, 역사/문화 종합 탐구
- 단어 설명(
clue)의 명확성:- 힌트 문장은 자극적이지 않으며 직관적이고 표준 국어대사전에 기반한 깔끔한 설명을 사용합니다.