name: nonogram-map-generator description: 컬러 노노그램 맵 데이터 생성 스킬. 사용자가 "노노그램 생성", "노노그램 맵 만들어줘", "[단어] 노노그램", "퍼즐 맵 생성" 등을 요청할 때 사용. 텍스트(단어)를 기반으로 25x20 컬러 노노그램 맵 데이터를 JSON 형식으로 생성하고 검증함.
Nonogram Map Generator
25x20 (가로 25, 세로 20) 컬러 노노그램 맵 데이터를 생성하는 스킬. 세로 화면 출력에 최적화.
색상 팔레트 (8색)
사용 가능한 색상 (0은 빈 칸):
- 0: empty (빈 칸)
- 1: black
- 2: red
- 3: blue
- 4: green
- 5: yellow
- 6: orange
- 7: purple
- 8: brown
규칙: 각 맵은 반드시 2가지 색상만 사용 (empty 제외)
맵 데이터 JSON 스키마
{
"id": "string", // 고유 ID (예: "stage_001")
"title": "string", // 정답 단어 (예: "고양이")
"hint": "string", // 정답을 암시하는 힌트 문장 (예: "야옹 소리를 내요")
"category": "string", // 카테고리 (동물, 사물, 음식, 자연, 탈것, 건물, 식물, 캐릭터 등)
"difficulty": 1-10, // 난이도 (기본값: 2)
"size": [25, 20], // 고정값 (가로 25, 세로 20)
"palette": ["color1", "color2"], // 사용된 2가지 색상 이름
"grid": [[...], ...] // 20행 x 25열 2D 배열, 값은 0-8 (palette에 포함된 색상만 사용)
}
생성 프로세스
- 단어 분석: 사용자가 제공한 단어/주제 파악
- 색상 선택: 주제에 어울리는 2가지 색상 선택
- 그리드 디자인: 25x20 픽셀아트 형태로 해당 주제 표현
- 힌트 작성: 정답을 직접 언급하지 않는 암시적 힌트
- 카테고리 분류: 적절한 카테고리 자동 지정
- 검증 실행:
scripts/validate_nonogram.py실행하여 유효성 검사
난이도 기준
- 1-2: 단순한 형태, 대칭적, 채워진 영역이 넓음
- 3-4: 약간의 디테일, 일부 복잡한 패턴
- 5-6: 중간 복잡도, 여러 분리된 영역
- 7-8: 복잡한 디테일, 작은 요소들
- 9-10: 매우 복잡, 세밀한 패턴
기본값: 사용자가 지정하지 않으면 난이도 2
검증 규칙
scripts/validate_nonogram.py 스크립트로 검증:
- 그리드 크기가 정확히 25x20인지 (20행, 25열)
- 사용된 색상이 정확히 2가지인지 (empty 제외)
- palette에 명시된 색상만 grid에 사용되었는지
- 모든 필수 필드가 존재하는지
- difficulty가 1-10 범위인지
- 색상 값이 유효한 범위(0-8)인지
사용법
- JSON 파일 생성 후 검증:
python3 scripts/validate_nonogram.py map_data.json
- 검증 통과 시 "✅ Valid" 출력, 실패 시 오류 내용 출력
디자인 가이드라인
- 형태가 명확하게 인식되어야 함
- 빈 공간(0)을 적절히 활용하여 윤곽 표현
- 대칭성 활용 시 더 풀기 쉬움
- 연속된 색상 블록이 많을수록 쉬움