
jangi.swtiger.site
시작하려면 로그인이 필요합니다.
초(楚)·한(漢)의 천년 반상 전쟁 — 내 궁을 지키고, 상대의 궁을 잡아라. 「장기」는 9×10 판에서 즐기는 실시간 2인 한국 장기예요. 차·포·마·상·사·졸을 움직여 상대의 궁(將/帥)을 외통수로 몰면 이깁니다. 초(파랑)가 먼저 둬요. • 방 코드로 대국 — 숫자 코드를 만들어 친구를 초대하거나, 코드만 입력해 바로 참가. 끊겨도 다시 들어오면 두던 판을 이어서 둬요. • 차림 선택 — 대국 전 마(馬)·상(象)의 좌·우 배치를 진영별로 직접 골라요. • 정통 규칙 — 궁성 3×3과 궁성 대각선, 포의 도약(포는 포를 못 넘어요), 마·상의 멱(다리) 막힘, 장군·외통수, 빅장(궁 대면)·한수쉼·무승부까지. • 혼자서도 한 판 — 빈 자리를 AI가 채워주는 연습 대국(전적엔 'AI전'으로 구분돼요). • 보상 & 전적 — 2인 대국에서 이기면 허브 재화가 적립되고, 사람전·AI전 전적이 차곡차곡 쌓여요. 한 수에 공수가 뒤바뀌는 수읽기의 묘미. 지금 첫 수를 두어보세요.
v0.3.1
### Added - **변경 불가 이름 필드(잠금) 패턴** 적용 — 로그인 시 닉네임(SSO 계정 이름)을 단순 비활성 입력이 아니라 '잠김'으로 분명히 표시: 점선·흐림 박스 + 상시 🔒 아이콘 + 보조 안내줄 ('변경 불가' 사유) + 데스크탑 툴팁. 접근성(readonly·aria-readonly·aria-disabled· aria-describedby)·모바일(inputmode=none로 키보드 차단, 터치엔 안 뜨는 툴팁 대신 안내줄) 고려. 템플릿(hub-game-template)의 재사용 위젯 `public/locked-field.js`를 그대로 이식.
v0.3.0
### Added - **로컬 2인 모드(같은 기기 pass-and-play)** — 온라인과 별개로 한 기기에서 초/한을 번갈아 두는 대면 대국. 로그인·소켓·허브 없이 동작(보상·전적은 온라인 정책 유지로 미적립). 홈의 '🧑🤝🧑 로컬 2인' 버튼, 그리고 비로그인 진입 `/?local=1`(스플래시에 로컬 버튼 추가, 자동 로그인 리다이렉트 제거). 룰 엔진은 서버와 동일한 순수 모듈을 브라우저에서 그대로 구동(`GET /engine.js`). - 로컬 모드는 장기판을 화면에 가득(가로·세로 동시 제약) 키워 두 사람이 보기 편하게 표시. ### Changed - 기물 크기를 컨테이너 쿼리 단위(cqw)로 전환 — 보드가 어떤 크기로 바뀌어도 기물이 교점에 정확히 정렬되며 비율이 유지됨(작은 보드·풀스크린 모두 편차 ~0px).
v0.2.1
### Fixed - 장기판과 기물 정렬: 격자 SVG의 viewBox가 점(기물) 좌표계와 반 칸 어긋나 기물이 교차점에서 미세하게 벗어나던 문제 수정(viewBox를 `0 0 8 9`로 일치). 모바일·데스크탑, 반응형 크기 변경에도 교점 정렬 오차 ~0px. ### Added - 허브 게임 상세 설명(`docs/hub-description.txt`) 작성 — 허브 게임 메타 `description`에 반영.
v0.2.0
### Added - **장기 (한국 장기) 게임 구현** — 9×10 판, 초/한 2인 대국. 순수 룰 엔진(`server/game-logic/engine.js`): 궁/사/차/포/마/상/졸 합법 이동, 궁성 3×3 + 궁성 대각선, 마(1멱)·상(2멱) 다리 막힘, 포의 도약(스크린 1개·포 도약/포획 불가), 졸의 전진·측면·적 궁성 대각선, 장군/외통, 빅장(궁 대면) 금수 처리, 한수쉼·무포획·장기화 무승부. 엔진 단위 테스트 46건. - **실시간 대국 UI**(`public/game-ui.js`): 진영(초·한) 선택, **차림**(마/상 좌·우 날개 순서) 설정, 9×10 목재 장기판(SVG 격자 + 궁성 대각선), 기물 한자 표기, 터치 선택·이동 하이라이트, 장군/승패 표시, 한수쉼·기권. 한(漢) 시점은 자동으로 보드를 뒤집어 표시. - **AI 1인 모드**: 간단한 그리디 봇(포획·장군 우선)과 대국. 전적에서 AI전으로 구분. - **장기 규칙 룰북** 페이지(`public/rules.html`)와 로비 링크. - 보상(승 20·무 10·패 5), 전적(AI/사람 구분), 보상 모달·세션 만료 재로그인, 토큰 keepalive, PWA는 템플릿 하네스를 그대로 활용. ### Changed - OIDC 인증을 **public 클라이언트(PKCE S256, secret 없음)** 도 지원하도록 확장(`server/auth.js`). confidential(client_secret_basic)도 계속 호환. 코드 교환·리프레시 모두 적용. - PWA 아이콘/매니페스트/테마를 장기(목재·초/한 알)로 교체.