
MB Janggi — 1:1 장기 플러그인 매뉴얼
DesignOneX · designonex.com DXCMS v8.8.3+
개요
MB Janggi 는 DXCMS 회원 간 1:1 실시간 장기 플러그인입니다. DX Socket 을 시그널링 서버로 활용하며, MB Profile Extend 의 더보기 버튼에 자동 등록됩니다. 포진 선택, 장군 체크, 외통수 판정, 무르기, 기보 저장, 모바일 터치를 지원합니다.
필수 조건
| 조건 |
설명 |
| DXCMS |
v8.8.3 이상 |
| dx-socket |
활성화 + API 키 발급 필수 |
| mb-profile-extend |
더보기 버튼 연동 |
설치
1. 파일 업로드
plugins/
└── mb-janggi/
├── plugin.json
└── plugin.php
2. 플러그인 활성화
관리자 → 플러그인 → MB Janggi → 활성화
더보기 모달 위치
프로필 모달 → [더보기 ...] 클릭
┌─────────────────────────┐
│ 더보기 — 홍길동 │
│─────────────────────────│
│ 📹 MB 화상채팅 │
│ 📞 MB 전화통화 │
│ 🖥 MB 화면공유 │
│ ♟ MB 장기 │ ← MB Janggi
└─────────────────────────┘
사용 방법
대국 신청
1. 프로필 모달 → [더보기 ...] 클릭
2. [♟ MB 장기] 클릭
3. 시간 제한 선택 (1분 / 2분 / 3분 / 무제한)
4. [신청] 버튼 클릭
5. 상대방 수락 대기 (30초 타임아웃)
대국 수락
1. 수신 모달 자동 표시
2. [수락] 또는 [거절] 선택
3. 수락 시 → 포진 선택 화면으로 이동
포진 선택
양쪽 모두 포진을 선택하면 대국이 시작됩니다.
초/한 배정
- 승률이 낮은 플레이어가 자동으로 초(楚)를 잡습니다.
- 신규 플레이어(0승 0패)의 경우 아이디 알파벳 순으로 결정됩니다.
- 초(楚): 파란색 기물 / 한(漢): 빨간색 기물
포진 종류
| 포진 |
설명 |
특징 |
| 귀마 |
마·상 순서 배치 |
정석, 균형적 |
| 원앙마 |
상·마 순서 배치 |
수비형 |
| 양귀마 |
양쪽 모두 귀마 |
공격형 |
| 면상 |
상 중심 배치 |
변칙형 |
포진 선택 화면
┌─────────────────────────────────────┐
│ 포진 선택 │
│ 초나라 (선수) — 나의 포진 │
│ │
│ ○ 귀마 (정석) │
│ ● 원앙마 (수비) │ ← 선택됨
│ ○ 양귀마 (공격) │
│ ○ 면상 (변칙) │
│ │
│ * 승률이 낮은 플레이어가 자동으로 │
│ 초(楚)를 잡습니다. │
│ │
│ [준비 완료] │
│ 상대방이 포진을 선택 중입니다... │
└─────────────────────────────────────┘
기물 이동 규칙
기물 배치
한(漢) — 위쪽 (빨간색)
┌───────────────────┐
│ 車 象 馬 士 漢 士 馬 象 車 │ row 0
│ 包 包 │ row 2
│ 兵 兵 兵 兵 兵 │ row 3
│ │
│ 卒 卒 卒 卒 卒 │ row 6
│ 包 包 │ row 7
│ 楚 │ row 8
│ 車 馬 象 士 楚 士 象 馬 車 │ row 9
└───────────────────┘
초(楚) — 아래쪽 (파란색)
기물별 이동 규칙
| 기물 |
한자 |
이동 방법 |
| 장(궁) |
漢/楚 |
궁성 안 상하좌우·대각선 1칸 |
| 차 |
車 |
상하좌우 직선 무제한, 궁성 내 대각선 |
| 포 |
包 |
직선 이동 시 기물 1개 반드시 넘어야 함, 포는 넘지 못함 |
| 마 |
馬 |
직선 1칸 후 대각선 1칸 (경로에 기물 없어야 함) |
| 상 |
象 |
직선 1칸 후 대각선 2칸 (경로에 기물 없어야 함) |
| 사 |
士 |
궁성 안 상하좌우·대각선 1칸 |
| 졸/병 |
卒/兵 |
전진 1칸 + 좌우 1칸 (뒤로 못 감) |
궁성 규칙
- 장(궁)과 사(士)는 궁성 밖으로 나갈 수 없습니다.
- 궁성 내에서 차·포·장·사는 대각선 이동이 가능합니다.
- 중앙(4열 1행/8행)에서 네 귀 방향으로, 귀에서 중앙으로 이동 가능합니다.
화면 구성
메인 대국 화면 (데스크톱)
┌─────────────────────────────────────────┐
│ JANGGI PRO [기권] 초(楚) 차례-02:41│
├─────────────────────────────────┬───────┤
│ │漢 홍길동│
│ │ 귀마 │
│ 장기판 (9×10) │ 02:41 │
│ (나무색 배경 + SVG 격자) │────────│
│ (팔각형 기물 + 한자 표시) │楚 김철수│
│ (이동 가능 위치 힌트) │ 원앙마 │
│ (마지막 수 노란 하이라이트) │ --:-- │
│ │────────│
│ │ 기보 │
│ │────────│
│ │[↩무르기]│
│ │[💾기보] │
│ │────────│
│ │ 채팅 │
└─────────────────────────────────┴───────┘
모바일 화면
┌─────────────────────────────┐
│ JANGGI PRO [기권] 초(楚) 차례│
├─────────────────────────────┤
│ 장기판 (터치 이동) │
├────────────┬────────────────┤
│ 漢 홍길동 02:41 │ 楚 김철수 --:--│
├──────┬─────┬──────┬─────────┤
│↩무르기│💾기보│💬채팅 │🏳기권 │
└──────┴─────┴──────┴─────────┘
장군 / 외통수
장군
상대방 기물이 내 장(궁)을 공격하는 상태
→ 장기판 테두리 빨간 빛 깜빡임
→ "장군!" 텍스트 애니메이션 표시
→ 반드시 장군을 피하는 수를 두어야 함
장군 상태에서 장군을 피하지 못하는 수를 두려 하면 ⚠️ 경고 모달이 표시됩니다.
외통수
더 이상 이동 가능한 수가 없는 상태
→ 자동으로 상대방 승리 처리
→ "외통수! 승리!" 결과 모달 표시
컨트롤 기능
| 기능 |
설명 |
| ↩ 무르기 |
상대방 동의 후 양쪽 1수씩 취소 |
| 💾 기보 저장 |
TXT 파일 다운로드 |
| 🏳 기권 |
확인 후 기권 → 패배 처리 |
| 💬 채팅 |
대국 중 실시간 채팅 |
무르기
[↩ 무르기 요청] 클릭
→ 상대방에게 무르기 요청 알림
→ 상대방: [거절] 또는 [허용] 선택
→ 허용 시: 양쪽 모두 1수씩 되돌림
→ 거절 시: "상대방이 무르기를 거절했습니다" 채팅 표시
이동 힌트
기물 클릭 시 이동 가능한 위치가 표시됩니다.
| 표시 |
의미 |
| 반투명 원 (어두운색) |
이동 가능한 빈 칸 |
| 빨간 테두리 원 |
상대방 기물을 잡을 수 있는 위치 |
| 노란 배경 |
마지막으로 이동한 위치 |
기보 저장
저장 형식: TXT
파일명: MB_Janggi_2026-08-21_00-00-00.txt
내용 예시:
[JANGGI PRO 기보]
[CHO:홍길동 / 원앙마]
[HAN:김철수 / 귀마]
[DATE:2026-08-21]
1. 초(楚) jol a4 → a5
2. 한(漢) jol i7 → i6
3. 초(楚) ma b1 → c3
...
게임 종료 조건
| 조건 |
결과 |
| 외통수 |
상대방 승리 |
| 기권 |
기권한 플레이어 패배 |
| 시간 초과 |
시간 초과 플레이어 패배 |
| 상대방 연결 끊김 |
자동 승리 |
타이머
- 수당 제한 시간 설정 (신청 시 선택)
- 착수 완료 시 타이머 초기화
- 시간 초과 시 자동 패배
- 10초 이하 시 타이머 빨간색 표시
소켓 이벤트
| 이벤트 |
방향 |
설명 |
janggi_invite |
발신 → 수신 |
대국 신청 |
janggi_invite_accept |
수신 → 발신 |
수락 |
janggi_invite_reject |
수신 → 발신 |
거절 |
janggi_formation |
양방향 |
포진 선택 완료 |
janggi_move |
양방향 |
기물 이동 |
janggi_undo_req |
양방향 |
무르기 요청 |
janggi_undo_accept |
양방향 |
무르기 수락 |
janggi_undo_reject |
양방향 |
무르기 거절 |
janggi_resign |
양방향 |
기권 |
janggi_timeout |
양방향 |
시간 초과 |
janggi_chat |
양방향 |
채팅 |
janggi_end |
양방향 |
종료 |
트러블슈팅
| 증상 |
원인 |
해결 |
| 더보기에 장기 안 보임 |
MB Janggi 미활성화 |
플러그인 활성화 확인 |
| 소켓 미연결 |
DX Socket 키 없음 |
API 키 발급 |
| 포진에서 넘어가지 않음 |
상대방 포진 미선택 |
상대방이 [준비 완료] 클릭 확인 |
| 기물이 안 움직임 |
내 차례 아님 |
타이머 배지 확인 |
| 장군 경고 모달 |
장군 상태에서 불가한 수 |
장군을 피하는 수 선택 |
| 모바일 터치 안 됨 |
브라우저 문제 |
새로고침 후 재시도 |
브라우저 지원
| 브라우저 |
지원 |
| Chrome (PC/Android) |
✅ |
| Firefox |
✅ |
| Safari (iOS/Mac) |
✅ |
| Samsung Internet |
✅ |
| Edge |
✅ |
파일 구성
plugins/mb-janggi/
├── plugin.json ← 플러그인 메타정보
└── plugin.php ← 메인 (UI + 게임 로직 + 소켓)
예정 기능
| 기능 |
설명 |
| 승패 기록 |
승/패 통계 및 승률 표시 |
| 관전 모드 |
진행 중인 대국 관전 |
| 대국 이력 |
기보 목록 관리 |
라이선스
| 항목 |
내용 |
| 라이선스명 |
DesignOneX License (디자인원엑스 라이선스) |
| 원천 소유 |
DesignOneX — designonex.com |
| 재배포·판매 |
❌ 금지 (원천 소스 90% 이상 수정 시 재배포·판매 가능) |
| 상업적 사용 |
✅ 상업적 프로젝트 제작에만 허용 (학습·개인 포트폴리오 포함) |
| 플러그인 원천 |
plugin.php, core/, admin/ 자체의 재배포 및 판매 금지 |
| 보증 |
본 플러그인은 현재 상태 그대로 제공되며 어떠한 명시적·묵시적 보증도 없습니다. |
🚫 plugin.php, core/, admin/ 디렉터리의 코드를 그대로 또는 일부 수정하여 재배포하거나 판매하는 행위는 엄격히 금지됩니다.
✅ 상업적 프로젝트 제작 및 사용은 허용됩니다. (학습·개인 포트폴리오 포함)
✅ 원천 소스를 90% 이상 수정한 경우 재배포·판매가 가능합니다.
DesignOneX · designonex.com MB Janggi v2.0.0