미니므게임으로 돌아가기

장기 규칙과 공략

기물마다 이동 규칙이 제각각이라 처음에는 어렵게 느껴지는 게임입니다. 마의 발, 상의 두 관문, 포의 받침만 이해하면 나머지는 금방입니다. 미니므 구현 기준으로 정확하게 적었습니다.

어떤 게임인가

장기는 가로 9줄, 세로 10줄의 선이 만나는 90개 지점에 말을 놓고 움직여, 상대 장(왕)을 잡히게 만드는 두 사람용 보드게임입니다. 말은 칸 안이 아니라 선의 교차점에 놓입니다. 중국 상치와 뿌리가 같지만 궁성의 모양, 상의 이동법, 포의 움직임 등이 달라 별개의 게임으로 발전했습니다.

장기의 특징은 말들이 서로 성격이 극단적으로 다르다는 점입니다. 차는 판을 종횡으로 가로지르고, 포는 반드시 무언가를 하나 넘어야만 움직이며, 상은 정해진 두 지점이 모두 비어야 갈 수 있습니다. 그래서 "내 말이 어디로 갈 수 있는가"보다 "지금 어떤 길이 열려 있는가"가 훨씬 중요한 게임입니다. 한 수로 길을 여닫는 감각이 실력 차를 만듭니다.

미니므 장기의 초기 배치는 아래 줄부터 차·마·상·사, 궁성 중앙에 장, 다시 사·상·마·차 순서입니다. 포는 셋째 줄 양쪽 두 번째 자리에 하나씩, 졸(병)은 다섯 개가 한 줄 띄어 놓입니다. 위쪽 진영이 초(초록 글씨), 아래쪽이 한(붉은 글씨)입니다.

규칙

말은 일곱 종류입니다. 미니므 구현 기준으로 정확히 적으면 다음과 같습니다.

  • 차(車) — 가로세로 직선으로 막힐 때까지. 게다가 궁성 안에서는 대각선도 씁니다. 궁성 귀퉁이에서 중앙을 거쳐 반대 귀퉁이까지 한 번에 통과할 수 있습니다.
  • 포(包) — 직선(궁성 안에서는 대각선 포함)으로 가는데, 가는 길에 반드시 말 하나를 넘어야 합니다. 받침을 넘은 뒤에는 빈 자리로 가거나 그 자리에 있는 상대 말을 잡습니다. 포는 다른 포를 받침으로 넘지 못하고, 포를 잡지도 못합니다. 받침이 없으면 아예 움직일 수 없습니다.
  • 마(馬) — 직선 한 칸 + 대각 한 칸. 직선으로 나가는 첫 칸이 비어 있어야 합니다. 이 칸이 막히면 그 방향 두 자리가 모두 봉쇄됩니다.
  • 상(象) — 직선 한 칸 + 대각 두 칸. 지나가는 두 지점이 모두 비어 있어야 합니다. 마보다 훨씬 잘 막힙니다.
  • 장(將) — 궁성 안에서만 상하좌우 한 칸, 그리고 궁성에 그려진 대각선을 따라 한 칸. 궁성 밖으로 나갈 수 없습니다.
  • 사(士) — 장과 완전히 같은 방식으로 움직입니다. 궁성을 벗어나지 못합니다.
  • 졸·병(卒·兵) — 앞·왼쪽·오른쪽으로 한 칸. 뒤로는 못 갑니다. 궁성 대각선 위에 있을 때는 전진 방향의 대각선으로도 한 칸 갈 수 있습니다.

내 장이 잡히는 수는 둘 수 없습니다. 상대 장을 노리는 수를 두면 화면에 "장군"이 표시됩니다. 둘 수 있는 합법 수가 하나도 없으면 그 편이 집니다. 장군을 피할 수 없는 외통이든, 장군이 아닌데 움직일 곳이 없는 상황이든 동일하게 패배입니다. 체스와 달리 무승부가 되지 않는 부분입니다.

미니므 장기에 없는 규칙도 알아두면 좋습니다. 두 장이 마주 보는 빅장 규칙, 한 수 쉬기, 기물 점수로 승부를 가리는 점수제, 반복 장군 제한은 구현되어 있지 않습니다. 무승부는 딱 하나, 양쪽 합쳐 400수에 도달했을 때입니다. 이때 레벨은 오르지도 내리지도 않습니다.

조작법

모바일과 PC 모두 두 번 누르는 방식입니다. 내 말을 누르면 그 말이 갈 수 있는 지점에 점이 표시되고, 상대 말을 잡을 수 있는 지점은 다른 모양으로 구분됩니다. 이어서 목표 지점을 누르면 이동합니다. 다른 내 말을 누르면 선택이 옮겨가고, 빈 곳을 누르면 선택이 풀립니다. 마와 상의 길이 막혔는지 헷갈릴 때는 그냥 말을 눌러보면 됩니다. 점이 찍히지 않으면 그 길은 막힌 것입니다.

방금 오간 두 지점은 색이 남고, 장군을 받은 장의 자리는 따로 강조됩니다. 잡힌 말은 사라지는 모션으로 표시되니 무엇이 오갔는지 놓치지 않습니다. 되돌리기는 내 수와 AI 응수를 한 번에 취소합니다. 온라인에서 내가 초(위 진영)를 잡으면 화면 전체가 180도 회전해 내 말이 항상 아래쪽에 옵니다. 좌표 계산은 내부적으로 그대로이니 헷갈릴 일은 없습니다.

난이도와 레벨 구조

AI가 쓰는 기물 가치는 다음과 같습니다. 실제 코드의 값이며, 여기에 100을 곱해 점수로 씁니다.

졸·병
1375332

여기에 두 가지 위치 점수가 붙습니다. 졸·병은 상대 진영 쪽으로 한 줄 나아갈 때마다 6점, 모든 말은 가운데 세 줄(궁성이 있는 열)에 있으면 3점을 더 받습니다. 그래서 AI는 졸을 꾸준히 밀어 올리고 중앙 열을 선호합니다.

탐색은 네가맥스에 정지 탐색을 붙인 구조입니다. 레벨별 설정은 이렇습니다.

레벨기본 깊이정지 탐색 깊이노드 한도
Lv.1~21수0 (없음)16만
Lv.3~42수416만
Lv.5~83수630만
Lv.9~124수6~830만~50만
Lv.13 이상5수850만

정지 탐색은 "잡고 되잡히는" 연쇄를 끝까지 세는 장치입니다. 미니므 장기 AI는 이걸 갖고 있어서, 단순 교환 계산에서는 체스 AI보다 오히려 정확합니다.

실수 확률은 Lv.9까지 (10 − 레벨)×6%입니다. Lv.1이 54%, Lv.5가 30%, Lv.9가 6%입니다. Lv.10부터는 0.5÷(레벨+2)로 줄어듭니다. 실수할 때의 행동이 레벨에 따라 다른 점이 중요합니다. Lv.1~2는 합법 수 전체에서 완전 무작위로 고르고, Lv.3 이상은 상위 4개 후보 중에서 고릅니다. 낮은 단계의 실수는 정말 엉뚱한 수지만, 높은 단계의 실수는 그냥 두 번째로 좋은 수 정도입니다.

학습은 당신이 말을 옮긴 도착 지점을 90개 칸별로 누적합니다. 그리고 그 지점과 상하좌우 네 지점(0.25 가중)까지 묶어 보너스를 계산합니다. 즉 정확히 같은 자리가 아니라 "그 근방"을 선점합니다. 반영은 Lv.4부터 시작해 Lv.12에서 최대이며, 최선값과의 차이가 80점 이내인 후보에만 적용됩니다. AI가 더 나쁜 수를 두게 만들지는 않습니다.

혼자 모드에서는 항상 플레이어가 한(아래, 붉은 말), AI가 초를 잡습니다. 고를 수 있는 것은 레벨과 선공뿐입니다. 이기면 레벨이 하나 오르고, 지면 그대로, 400수 무승부면 유지됩니다.

공략 팁

1. 차 하나가 마 두 개보다 비쌉니다

AI 계산에서 차는 1300점, 마는 500점, 상은 300점입니다. 차 하나가 마와 상을 합친 것보다도 비쌉니다. 그래서 AI는 차를 잡히는 수를 거의 두지 않고, 반대로 내 차를 잡을 기회가 보이면 다른 이득을 다 포기하고 달려듭니다. 이 성향을 이용해 차를 미끼로 쓰면 AI를 원하는 방향으로 끌어낼 수 있습니다. 물론 정말 내주면 그 판은 어렵습니다.

2. 포의 받침을 내가 치우는 실수를 피하세요

포는 받침이 없으면 한 발짝도 못 움직입니다. 자기 졸을 받침으로 쓰고 있었다면, 그 졸을 전진시키는 순간 포의 사선이 통째로 끊깁니다. 반대로 상대 포의 받침을 치우거나 잡아버리면 그 포를 한 수 만에 무력화할 수 있습니다. 매 수를 두기 전에 내 포 두 개의 받침이 그대로인지 눈으로 확인하는 습관을 들이세요.

3. 포 앞에 내 포를 세우면 완전 차단입니다

구현상 포는 포를 넘지 못하고 잡지도 못합니다. 상대 포의 사선 위, 받침보다 앞쪽에 내 포를 놓으면 그 줄은 완전히 막힙니다. 상대는 그 포를 잡을 수도, 넘을 수도 없습니다. 궁성을 겨누는 상대 포를 처리할 때 가장 확실한 방법입니다.

4. Lv.1~2는 교환 계산을 못 합니다

이 두 단계는 정지 탐색 깊이가 0입니다. "내가 잡고 상대가 되잡는" 연쇄를 세지 않습니다. 그래서 지켜지고 있는 말을 태연히 잡으러 들어옵니다. 일부러 상을 앞에 내밀고 차로 받쳐두면 상을 잡으러 온 마나 포를 그대로 회수할 수 있습니다. Lv.3부터는 정지 탐색이 4로 켜져 이 함정이 통하지 않습니다.

5. 궁성 대각선을 비워두지 마세요

차는 궁성 안에서 대각선을 씁니다. 그리고 귀퉁이에서 중앙을 지나 반대 귀퉁이까지 한 수로 통과할 수 있습니다. 내 궁성 중앙이 비어 있으면 상대 차 한 대가 대각으로 뛰어들어 즉시 장군을 부릅니다. 사를 궁성 중앙이나 대각선 위에 두어 이 통로를 막는 것이 기본 수비입니다.

6. AI는 진형의 가치를 계산하지 않습니다

평가 함수는 기물 값, 졸 전진, 중앙 열 세 가지뿐입니다. 궁성 앞에 포를 세운 형태처럼 구조 자체의 가치는 점수에 없습니다. 즉 AI는 몇 수 안에 이득이 나오지 않는 압박을 위협으로 인식하지 못합니다. 기물 손해 없이 궁성을 서서히 조여 가는 운영이 고레벨에서 가장 잘 먹힙니다.

7. 불리하면 400수를 노리세요

양쪽 합쳐 400수에 도달하면 무승부이고 레벨은 유지됩니다. 기물 교환을 피하고 장과 사를 궁성에 모아 웅크리면 AI가 외통을 만들기 어렵습니다. 다만 레벨이 오르지도 않으니 이건 어디까지나 최고 기록을 지키는 수단입니다.

8. 자주 쓰는 통로를 바꿔가며 쓰세요

학습은 도착 지점과 그 주변 네 지점까지 함께 봅니다. 매번 같은 길로 마를 올리면 Lv.4 이상 AI가 그 근방을 미리 밟습니다. 같은 목표를 다른 경로로 가는 연습을 하면 학습 가중이 흩어지고, 동시에 장기 실력에도 도움이 됩니다.

자주 하는 실수

  • 상의 길을 마처럼 셉니다. 마는 첫 칸 하나만 비면 되지만, 상은 지나가는 두 지점이 모두 비어야 합니다. 상은 실제로 봉쇄되기 아주 쉬운 말입니다. 상 앞에 자기 졸이 하나 있으면 그 방향 전체가 죽습니다. 배치 초반에 상의 길을 스스로 막는 경우가 정말 흔합니다.
  • 마의 발이 묶인 걸 모르고 계획을 세웁니다. 마가 나가려는 직선 첫 칸에 아무 말이든(내 말이든 상대 말이든) 있으면 그 방향 두 자리가 함께 막힙니다. 상대가 내 마 앞에 졸 하나를 붙이는 것만으로 마 절반을 재우는 셈입니다.
  • 사를 아낌없이 교환해 버립니다. 사는 3점짜리 말이라 값이 싸 보이지만, 궁성 밖으로 나갈 수 없어서 대체할 수단이 없습니다. 사 둘이 사라진 궁성은 차와 포 앞에서 순식간에 무너집니다. 궁성 수비에 필요한 최소한은 남겨두세요.
  • 움직일 곳이 없어도 버틸 수 있다고 생각합니다. 장기에서는 장군이 아니어도 합법 수가 없으면 그대로 패배입니다. 궁성에 웅크리는 전략을 쓸 때는 장과 사가 서로의 길을 완전히 막지 않도록 한 칸은 늘 비워두세요.

혼자·둘이서·온라인

혼자 (AI) — 레벨과 선공을 고릅니다. 진영은 항상 내가 한(아래), AI가 초입니다. 레벨 스테퍼는 1부터 최고 기록까지 오갑니다. 아직 이겨보지 못한 레벨로 뛰어넘을 수는 없습니다.

둘이서 — 한 기기에서 번갈아 두면 초가 먼저 시작합니다. 친구랑 함께를 고르면 온라인 대전이 열립니다. 로그인 후 친구를 추가하고 초대를 보내 상대가 수락하면 시작되며, 초대한 쪽이 초(선공)입니다. "한 판 더"를 서로 수락하면 진영이 바뀝니다. 온라인 되돌리기는 상대 승인이 필요합니다. 내가 마지막에 뒀으면 1수, 상대가 응수를 마쳤으면 내 수까지 2수입니다. 온라인 대국은 레벨·최고 기록·학습 데이터에 영향을 주지 않습니다.

비슷한 게임과 비교

체스와 가장 닮아 보이지만 실제 감각은 다릅니다. 체스는 기물이 열린 판을 자유롭게 오가지만, 장기는 마와 상이 쉽게 막히고 포가 받침에 묶여 있어서 길을 여닫는 수 자체가 공격이 됩니다. 또 체스에는 스테일메이트 무승부가 있지만 장기에서는 움직일 곳이 없으면 그냥 패배입니다. AI 쪽에서도 차이가 있습니다. 장기 AI는 정지 탐색이 있어 교환 계산이 정확한 대신, 체스 AI처럼 반복 심화로 시간을 꽉 채워 쓰지는 않습니다.

오목과 비교하면 계산의 방향이 반대입니다. 오목은 놓인 돌이 사라지지 않아 위협이 누적되기만 하고, 장기는 매 수 말이 사라지며 판이 단순해집니다. 그래서 오목은 앞으로 만들 모양을, 장기는 지금 남은 전력을 세는 게임입니다. 리버시까지 셋을 번갈아 하면 "누적형·소모형·역전형"이라는 세 가지 판의 성격을 모두 경험할 수 있습니다.

지금 장기 플레이하기 →