Commit Graph
9 Commits
Author SHA1 Message Date
plparkandClaude Opus 5 f208619ac4 Add tank stage 3 and per-stage entry links
Two stages were not much of a ladder. Add STAGE 3 · 강철 회랑: 31 steel
cells the shells cannot pass, a double brick cap over the base and two
narrow funnels into it, 8 enemies with 4 on the field.

Getting to a later stage meant clearing the earlier ones. Read the stage
from the URL (#3 or ?stage=3) at load and on hashchange, so the shell's
nav chips and a plain link both land where they say. The stage buttons
and key hints are built from STAGES, so a new stage needs no UI edit.

Simulated 10 idle and 10 random-bot runs per stage: stage 3 leaves the
base standing in 6 of 10 idle runs, and its 144 reachable cells keep the
player out of a sealed pocket - an earlier layout had only 8.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 16:38:20 +09:00
plparkandClaude Opus 5 f771a6b3e5 Add a 휴게실 tank game tab under the literature list
The crossword shell only carried literature tabs. Add a second nav
section, 휴게실, holding a standalone canvas tank game: two stages
(fortress with 4 enemies, maze with 6), arrow keys to move, space to
fire, WebAudio for the shots and explosions.

The page shares nothing with the crossword engine, so the Dockerfile's
asset-hash stamp leaves it alone. Inside the shell's iframe a keydown
only lands once the frame has focus, so the canvas takes a tabindex and
the click handler focuses it; the start overlay says to click first.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 16:01:04 +09:00
plparkandClaude Opus 5 9cb8915173 Fix clue leak, stop the 404 fallback, bust the proxy asset cache
세 가지를 함께 고쳤다.

러시아 편에서 고리키와 어머니의 단서가 서로의 정답을 그대로 담고 있어 두 칸이
한꺼번에 풀렸다. 양쪽 단서에서 상대 이름을 뺐다.

nginx 의 try_files 폴백을 =404 로 바꿨다. 페이지가 여럿이 된 뒤로는 없는 경로도
200 으로 셸을 내려주어, 배포가 안 됐는데도 정상으로 보이는 일이 있었다.

프록시(NPM)가 js/css 에 제 캐시 헤더를 덧붙여 원본의 no-cache 를 덮어쓴다.
이미지 빌드 때 자산 내용의 sha256 앞 열 자리를 뽑아 각 페이지의 링크를
assets/crossword.js?v=<해시> 로 바꾸는 단계를 Dockerfile 에 넣었다. 저장소의
HTML 은 해시 없는 상태로 두고, 자산이 바뀌면 URL 이 저절로 바뀐다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 17:56:43 +09:00
plparkandClaude Opus 5 23d9bd6862 Add French literature puzzle
셸에 프랑스 문학 탭을 영국 다음 자리에 더하고 site/french.html 을 추가했다.
9x9 40칸 15항목.

십칠 세기부터 이십 세기까지 정전으로 골랐다. 뒤마 · 스탕달 · 보들레르 ·
프루스트 · 생텍쥐페리에 위고(자베르 · 코제트) · 플로베르(마담 보바리) ·
모파상(여자의 일생) · 졸라(제르미날) · 카뮈(페스트) · 프레보(마농 레스코),
그리고 마들렌과 장미.

탭이 여섯이 되었으나 560px 이하에서 '문학'을 접는 처리로 충분히 들어간다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 17:51:03 +09:00
plparkandClaude Opus 5 f50da5279c Add Korean literature puzzle, make it the default tab
site/korean.html 을 추가하고 셸의 첫 탭이자 기본값으로 두었다. 한글 사이트이니
빈 해시로 들어오면 한국 문학이 열리는 편이 자연스럽다.

9x9 41칸 15항목으로 다섯 편 중 항목이 가장 많다. 근현대 주류 정전으로만 골라
1917년 《무정》(영채)에서 한강 《채식주의자》까지 걸친다. 나도향 · 염상섭 ·
이광수 · 이효석 · 현진건 · 채만식 · 이상 · 황순원 · 전광용 · 이청준 ·
황석영 · 조세희 · 이문열.

탭이 다섯이 되어 560px 이하에서는 탭 이름의 '문학'을 접고 나라 이름만 남긴다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 17:07:24 +09:00
plparkandClaude Opus 5 c36468843d Add Japanese literature puzzle
셸에 일본 문학 탭을 더하고 site/japanese.html 을 추가했다. 9x9 44칸 14항목으로
네 편 중 가장 촘촘하다. 첫 열에 《나는 고양이로소이다》 아홉 자가 통째로 들어간다.

일본어 한글 표기는 음절이 잘 겹쳐(낱말 143개에 음절 166종) 독일 편처럼 풀을
억지로 넓히지 않아도 교차가 넉넉히 나왔다.

격자 품질 검사에 항목 간 포함 관계 검사를 더했다. 한 정답이 다른 정답에 통째로
들어가는 짝(소세키 / 나쓰메소세키)은 한 격자에 같이 두지 않는다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 16:20:09 +09:00
plparkandClaude Opus 5 5b2d6e10da Add German literature puzzle
셸에 독일 문학 탭을 더하고 site/german.html 을 추가했다. 9x9 41칸 14항목.

독일어 표기는 음절이 서로 겹치지 않아 격자가 성글게 나온다. 그래서 낱말 풀을
작품·작가에서 등장인물과 작품 속 핵심어까지 넓혀 교차 지점을 확보했다.
(로테, 헨젤, 카스토르프, 나르치스 같은 인물과 벌레·계약·향기 같은 핵심어)

격자는 기존 두 편과 같은 규약을 만족한다. 길이 2 이상 모든 구간이 단서가 붙은
항목과 일대일로 대응하고, 어떤 단서도 다른 항목의 정답을 그대로 담지 않는다.

탭이 셋이 되면서 아주 좁은 화면(560px 이하)에서는 상표를 접고 탭에 폭을 넘긴다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 14:03:09 +09:00
plparkandClaude Opus 5 96262fc690 Add British literature puzzle and a two-tab shell
index.html 은 왼쪽 탭(러시아 문학 / 영국 문학)과 게임을 띄우는 iframe 만 갖는
셸로 바꾸고, 게임 본체는 편별 페이지로 분리했다. 탭 상태는 해시(#russian,
#british)에 남으므로 링크로 바로 들어갈 수 있고, 같은 탭을 다시 눌러도
프레임을 다시 읽어들이지 않아 풀던 내용이 유지된다.

두 편이 쓰는 화면 양식과 게임 엔진은 site/assets/ 로 빼내 한 벌만 둔다.
엔진에는 셸 안에서 열렸을 때 여백을 줄이는 표시와, 첫 렌더에서 단서 목록을
스크롤하지 않게 하는 처리(프레임 안에서 머리말이 밀려 올라감)를 더했다.

영국 문학 편은 9x9 39칸 12항목. 가로/세로로 길이 2 이상 이어지는 모든 구간이
단서가 붙은 항목과 일대일로 대응하는지 확인했다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 16:32:30 +09:00
plparkandClaude Opus 5 65588c339c Add static crossword site with nginx image and k8s manifests
- site/index.html: Russian literature crossword page
- Dockerfile + nginx conf serving on 8080 with /healthz
- k8s Deployment + NodePort Service (31380) in plpark-int-ns
- Jenkinsfile: build/push to gitea registry, apply to rancher

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 16:01:48 +09:00