← 홈

❌⭕ 틱택토

AI와 대결! 당신은 X, AI는 O

승 0무 0패 0

당신의 차례 (X)

틱택토란?

가장 간단하지만 전략적인 3x3 보드 게임. 가로·세로·대각선으로 같은 표시를 세 개 연속 놓으면 승리하는 클래식 게임을 AI와 함께 플레이할 수 있습니다. 난이도(쉬움/어려움)에 따라 AI가 다르게 동작하며, 플레이어가 X로 먼저 둡니다.

주요 기능

  • AI 대전 — 쉬움/어려움 2단계 (어려움은 미니맥스 최선 수)
  • Minimax 알고리즘 — 어려움 모드는 최선의 수
  • 승률·무승부 기록 — 브라우저에 자동 저장
  • 심플한 UI — 어디서나 쉽게 플레이

사용 방법

  1. 난이도를 선택하세요
  2. 빈 칸을 탭해서 O를 놓으세요
  3. AI는 자동으로 X를 놓습니다
  4. 가로·세로·대각선으로 3개 연속이면 승리

가장 오래된 보드 게임 중 하나

세 개를 한 줄로 늘어놓는 놀이는 고대 로마와 이집트의 유물에서도 그 흔적이 발견될 정도로 오래되었으며, 영어권에서는 '노츠 앤드 크로시스', 한국에서는 흔히 '삼목' 또는 '틱택토'로 불립니다. 규칙은 3칸 곱하기 3칸 보드에 두 사람이 번갈아 자기 표시를 놓고, 가로·세로·대각선 중 어느 한 줄을 먼저 완성하는 사람이 이기는 것입니다. 승리 가능한 줄은 가로 3개, 세로 3개, 대각선 2개로 모두 여덟 줄입니다.

보드가 작아 보이지만 경우의 수는 결코 적지 않습니다. 첫 수는 9가지, 둘째 수는 8가지로 이어지므로 아홉 칸을 모두 채우는 순서는 최대 9의 계승인 362,880가지이고, 도중에 승부가 나는 경우를 반영해 실제로 가능한 서로 다른 게임 진행은 255,168가지로 알려져 있습니다. 회전과 대칭으로 같은 모양을 하나로 묶으면 크게 줄어들지만, 사람이 머릿속으로 모든 경우를 따라가기에는 여전히 많은 숫자입니다.

그런데도 틱택토는 조금만 연습하면 누구나 지지 않게 되는 게임입니다. 경우의 수가 많아도 좋은 수를 고르는 원칙이 몇 개로 정리되기 때문이며, 그래서 게임 이론과 인공지능을 처음 배울 때 가장 먼저 다루는 예제로 쓰입니다.

게임 이론에서 보는 틱택토: 풀린 게임

게임 이론에서는 두 사람이 번갈아 두고, 운의 요소가 없으며, 서로의 수를 모두 볼 수 있고, 유한한 수 안에 끝나는 게임을 '완전 정보 유한 게임'이라고 부릅니다. 1913년 수학자 체르멜로는 이런 게임은 반드시 셋 중 하나의 결론을 가진다는 것을 보였습니다. 선공이 반드시 이길 수 있거나, 후공이 반드시 이길 수 있거나, 양쪽이 모두 최선을 다하면 무승부가 된다는 것입니다.

어떤 게임의 그 결론이 무엇인지 실제로 밝혀 낸 것을 '풀린 게임'이라고 합니다. 틱택토는 모든 경우를 따져 본 결과 양쪽이 실수하지 않으면 항상 무승부로 끝나는 게임임이 밝혀져 있습니다. 즉 상대가 완벽하게 두는 한 이기는 것은 불가능하고, 지지 않는 것이 최선입니다. 같은 방식으로 커넥트포는 선공 필승, 체커는 무승부임이 컴퓨터로 증명되었으며, 체스와 바둑은 경우의 수가 너무 많아 아직 풀리지 않았습니다.

이 사이트의 틱택토에서 플레이어는 X로 먼저 두고 컴퓨터가 O로 응수합니다. 어려움 모드의 컴퓨터는 모든 경우를 끝까지 계산해 최선의 수만 두기 때문에, 이 모드에서 플레이어가 얻을 수 있는 최고의 결과는 무승부입니다. 반대로 플레이어가 한 번이라도 실수하면 컴퓨터는 그 틈을 반드시 이용합니다.

최적 전략: 중앙, 코너, 그리고 포크

선공의 첫 수는 중앙이나 네 코너 중 하나가 좋습니다. 중앙은 여덟 줄 가운데 네 줄에 걸쳐 있어 가장 많은 승리 가능성을 품고 있고, 코너는 세 줄에 걸쳐 있으면서 상대의 실수를 유도하는 함정을 만들기 쉽습니다. 변의 가운데 칸은 두 줄에만 걸쳐 있어 가장 약한 첫 수입니다. 후공의 응수 원칙도 명확합니다. 선공이 코너를 잡으면 후공은 반드시 중앙을 잡아야 하고, 선공이 중앙을 잡으면 후공은 코너를 잡아야 합니다. 이 원칙을 어기면 후공은 최선의 수순으로 패배하게 됩니다.

틱택토에서 이기는 유일한 방법은 '포크'입니다. 한 수로 두 줄에서 동시에 두 개씩을 완성해 상대가 한 곳을 막아도 다른 곳에서 이기는 형태입니다. 예를 들어 X가 서로 마주보는 두 코너를 차지하고 중앙이 비어 있을 때, 또는 X가 중앙과 코너를 잡고 있고 O가 엉뚱한 곳에 두었을 때 포크가 만들어집니다. 반대로 상대가 다음 수에 포크를 만들 수 있다면 그 전에 막아야 하며, 가장 좋은 방어는 스스로 두 개를 먼저 만들어 상대가 막지 않을 수 없게 하면서 그 막는 자리가 포크 자리가 되지 않게 하는 것입니다.

널리 알려진 수 선택의 우선순위는 다음과 같습니다. 이길 수 있으면 이기고, 상대가 이길 곳이 있으면 막고, 포크를 만들 수 있으면 만들고, 상대의 포크를 막고, 중앙이 비었으면 중앙, 상대가 코너에 있으면 그 맞은편 코너, 빈 코너, 마지막으로 빈 변의 순서입니다. 매 수마다 위에서부터 차례로 검토하면 절대 지지 않는 플레이가 됩니다.

미니맥스 알고리즘: 컴퓨터는 어떻게 두는가

어려움 모드의 컴퓨터는 미니맥스라는 알고리즘으로 수를 고릅니다. 현재 판에서 둘 수 있는 모든 수를 하나씩 가정하고, 그 다음 상대가 둘 수 있는 모든 수, 다시 그 다음 자신의 모든 수를 게임이 끝날 때까지 나무처럼 펼쳐 봅니다. 끝난 판에는 점수를 매기는데, 이 게임에서는 컴퓨터의 승리를 +10, 플레이어의 승리를 -10, 무승부를 0으로 둡니다.

그다음 나무를 거꾸로 거슬러 올라오면서 점수를 정합니다. 컴퓨터가 둘 차례인 판에서는 자식 판들 중 가장 높은 점수를 취하고(최대화), 플레이어가 둘 차례인 판에서는 상대가 컴퓨터에게 가장 불리한 수를 둘 것이라고 가정해 가장 낮은 점수를 취합니다(최소화). 이렇게 하면 '상대가 최선을 다할 때 내가 보장받을 수 있는 최선의 결과'가 계산되고, 컴퓨터는 그 값이 가장 큰 수를 선택합니다. 틱택토의 나무는 크지 않아 매 수마다 끝까지 계산하는 데 문제가 없습니다.

이 게임은 여기에 알파-베타 가지치기를 더해 계산량을 줄입니다. 어떤 가지를 살피는 도중 그 가지가 이미 확인한 다른 가지보다 나을 수 없다는 것이 확실해지면 나머지 계산을 건너뛰는 기법입니다. 결과는 가지치기를 하지 않은 미니맥스와 완전히 같지만 속도가 훨씬 빠릅니다. 같은 원리는 체스 프로그램에도 쓰이지만, 체스는 끝까지 펼칠 수 없어 일정 깊이에서 멈추고 판세를 어림하는 평가 함수를 사용한다는 점이 다릅니다.

지지 않는 법과 이기는 법

어려움 모드에서 목표는 무승부입니다. 코너로 시작하면 컴퓨터는 중앙을 잡을 것이고, 그 뒤 맞은편 코너를 두면 컴퓨터는 변으로 응수합니다. 이후로는 컴퓨터가 두 개를 만들 때마다 막기만 하면 무승부가 됩니다. 중앙으로 시작해도 무승부는 가능하지만, 컴퓨터가 코너를 잡은 뒤에는 더욱 조심해서 포크를 허용하지 않아야 합니다. 어떤 수를 두든 매 차례 '상대가 다음 수로 두 줄을 동시에 만들 수 있는가'를 먼저 확인하는 습관이 핵심입니다.

쉬움 모드에서는 컴퓨터가 40%의 확률로 아무 칸에나 두고 나머지 60%는 최선의 수를 둡니다. 이기려면 컴퓨터가 무작위 수를 두었을 때 곧바로 처벌할 수 있는 형태를 미리 준비해야 합니다. 코너 첫 수가 가장 효과적입니다. 컴퓨터가 중앙을 놓치면 즉시 맞은편 코너를 차지해 포크 기회를 만들고, 컴퓨터가 변에 두면 그 반대편을 활용해 두 줄을 동시에 위협합니다. 무작위 수는 언제 나올지 알 수 없으니 매 수마다 최선의 형태를 유지하면서 기회를 기다리는 것이 승률을 높이는 방법입니다.

승패보다 더 값진 것은 판을 읽는 습관입니다. 둘 때마다 여덟 줄을 한 번씩 훑어 자신과 상대가 각각 몇 개씩 놓았는지 세어 보면, 어디가 위협이고 어디가 기회인지가 보입니다. 이 습관은 커넥트포나 오목처럼 한 줄 만들기 규칙을 가진 다른 게임으로도 그대로 이어집니다.

이 게임의 진행 방식과 기록

난이도는 쉬움과 어려움 두 가지이며, 난이도 버튼을 누르면 진행 중인 판이 초기화되고 새 판이 시작됩니다. 플레이어는 항상 X로 먼저 두고, 빈 칸을 누르면 X가 놓인 뒤 컴퓨터가 잠시 생각하는 시간을 두고 O를 놓습니다. 컴퓨터가 두는 동안에는 입력이 무시되므로 차례를 알리는 문구를 확인한 뒤 두면 됩니다.

한 줄이 완성되면 그 세 칸이 강조 표시되고 승리, 패배, 무승부 중 결과가 표시됩니다. 아홉 칸이 모두 채워졌는데 완성된 줄이 없으면 무승부입니다. 결과가 난 뒤 다시 하기 버튼으로 같은 난이도의 새 판을 시작할 수 있습니다.

승, 무, 패 횟수는 화면 위에 누적 표시되며 브라우저에 저장되어 다음 방문에도 유지됩니다. 쉬움과 어려움의 기록은 합산되어 한 세트로 기록되므로, 어려움 모드에서 무승부 비율이 얼마나 높은지, 쉬움 모드에서 승리를 몇 번 얻어 냈는지를 스스로 기억하며 비교하면 실력 변화를 가늠할 수 있습니다.

활용 팁

  • 어려움 모드의 AI는 무패에 가깝습니다. 무승부를 목표로!
  • 첫 수는 중앙(가운데 칸)이 가장 유리합니다
  • 코너 → 중앙 → 코너 순으로 시작하면 무승부 가능성이 높아집니다

자주 묻는 질문

Q. AI를 이길 수 있나요?

쉬움은 AI가 일정 확률로 실수를 하므로 이길 수 있지만, 어려움은 미니맥스 최선의 수를 두므로 무승부가 최선입니다.

Q. 2인 플레이는 안 되나요?

현재는 AI 대전만 지원합니다.

Q. 어려움 모드에서 컴퓨터를 이길 방법이 정말 없나요?

없습니다. 틱택토는 양쪽이 최선을 다하면 항상 무승부가 되는 것이 증명된 게임이고, 어려움 모드의 컴퓨터는 미니맥스로 모든 경우를 끝까지 계산해 최선의 수만 둡니다. 이 모드에서는 무승부가 최고의 결과이며, 매 차례 상대가 두 줄을 동시에 만들 수 있는지 확인해 포크만 막으면 무승부를 지킬 수 있습니다.

Q. 첫 수는 어디에 두는 것이 가장 좋은가요?

중앙이나 코너입니다. 중앙은 네 줄에 걸쳐 있어 가장 많은 가능성을 품고, 코너는 상대의 실수를 유도하는 포크를 만들기 쉽습니다. 변의 가운데는 두 줄에만 걸쳐 있어 가장 약한 첫 수입니다. 쉬움 모드에서 이기고 싶다면 컴퓨터의 무작위 수를 처벌하기 좋은 코너 첫 수를 권합니다.

Q. 포크가 무엇인가요?

한 수로 두 줄에서 동시에 두 개씩을 만들어 상대가 한 곳을 막아도 다른 곳에서 이기게 되는 형태입니다. 틱택토에서 실수하지 않는 상대를 상대로는 만들 수 없지만, 이기는 거의 유일한 수단이기도 합니다. 반대로 상대가 다음 수에 포크를 만들 수 있는 자리는 미리 막아야 합니다.

관련 도구

지뢰찾기2048스네이크 게임밸런스 게임

작성·검수: FunAppBox 편집팀 · 내용 오류나 개선 제안은 문의 페이지로 알려주세요.