feat: expand masks, structural filters, and solution similarity dedupe
This commit is contained in:
@@ -16,9 +16,9 @@ dotnet run -- <seed> [startId] [endId] > output.json
|
||||
- 진행 상태는 stderr에 한 줄로 갱신됩니다(벽 생성중/박스 배치중/검증중/생성완료).
|
||||
|
||||
## 설정
|
||||
- `levelbalance.json`: 레벨 밴드 설정(레벨 범위, 박스 수, 최소 푸시/턴/브랜칭, 사용할 마스크 개수). 이 파일을 수정해 난이도/범위를 조정합니다.
|
||||
- `mask_library.cs`: Microban/Novoban 스타일의 외곽 마스크 모음. 회전/반전/스케일 변형과 소규모 벽 지터가 자동 적용됩니다. 마스크를 추가해 형태 다양성을 늘릴 수 있습니다.
|
||||
- `Program.cs`: 생성 튜닝(`GenerationTuning`)에 시도 횟수, 시간 한도, 역탐색 깊이/폭, 외벽 정규화 등이 정의되어 있습니다.
|
||||
- `levelbalance.json`: 레벨 밴드 설정(레벨 범위, 박스 수, 최소 푸시/턴/브랜칭, 마스크 세트/확장 범위, 역탐색 깊이/폭 스케일, 목표/박스 간 최소 거리, 주머니(포켓) 리라이팅). `maskSets`(micro/medium/large), `maskPadMin/max`, `reverseDepthScale/breadthScale`, `minAllowedBranching`, `minGoal/Box/WallDistance`, `pocketCarveMin/Max/Radius`를 밴드별로 조정해 난이도·길이감을 설계합니다.
|
||||
- `mask_library.cs`: Microban/Novoban 스타일의 외곽 마스크 모음 + 중형/대형 마스크. 회전/반전/스케일 변형과 소규모 벽 지터가 자동 적용됩니다. 마스크를 추가해 형태 다양성을 늘릴 수 있습니다.
|
||||
- `Program.cs`: 생성 튜닝(`GenerationTuning`)에 시도 횟수, 시간 한도, 릴랙스 단계 수, 역탐색 기본 깊이/폭, 외벽 정규화, 코너 데드락 필터 옵션 등이 정의되어 있습니다.
|
||||
|
||||
## 출력 형식
|
||||
`output.json`은 다음 형태의 배열입니다.
|
||||
@@ -49,4 +49,5 @@ dotnet run -- <seed> [startId] [endId] > output.json
|
||||
## 메모
|
||||
- 외벽은 항상 `#`로 둘러지며, `0`은 외부에서만 사용됩니다.
|
||||
- 중복 레이아웃은 제거됩니다.
|
||||
- 해법 패턴(푸시/턴/방향 런 요약) 해시를 이용해 유사 해법 레벨도 추가로 걸러냅니다.
|
||||
- 더 느리게 돌려야 하면 `GenerationTuning`의 시도/시간 한도를 조정하세요.
|
||||
|
||||
Reference in New Issue
Block a user