오목의 숨은 규칙, 쌍삼(3-3) — 왜 이 룰이 존재할까
오목은 다섯 개의 돌을 먼저 연속으로 놓는 사람이 이기는, 규칙만 보면 매우 단순한 게임입니다. 그런데 이 단순함 속에 오래전부터 알려진 근본적인 문제가 하나 있습니다. 아무 제약 없이 오목을 두면, 먼저 두는 흑이 정석대로만 두어도 반드시 이길 수 있다는 것이 이론적으로 증명되어 있습니다. 이 불균형을 바로잡기 위해 도입된 것이 흑에게만 적용되는 금수 규칙, 그중 가장 대표적인 것이 '쌍삼(3-3)' 금지입니다.
쌍삼이 왜 그렇게 강력한가
'열린 3'이란 양쪽 끝이 모두 비어 있는 연속된 돌 3개를 말합니다. 이 상태에서는 다음 수로 어느 쪽을 막아도 소용없이 열린 4를 만들 수 있어서, 사실상 막기가 매우 까다로워집니다. 그런데 한 수로 이런 '열린 3'을 동시에 두 방향으로 만들어버리면, 상대는 한 곳만 막을 수 있으니 나머지 한쪽에서 승리로 이어지는 경우가 대부분입니다. 이게 바로 쌍삼이 금지된 이유입니다 — 너무 강력해서 게임의 균형을 깨기 때문입니다.
규칙을 코드로 옮기는 일
이 규칙을 게임에 정확히 구현하는 과정이 생각보다 까다로웠습니다. 어떤 자리에 돌을 두었다고 가정하고, 가로·세로·대각선 두 방향까지 총 네 방향 각각에서 '열린 3'이 만들어지는지를 검사해야 합니다. 연속된 돌의 개수를 세고, 그 양 끝이 모두 빈칸인지 확인하고, 여기에 더해 이미 다섯 개가 만들어져서 승리하는 수라면 예외로 허용해야 하는 등 여러 예외 조건까지 고려해야 정확해집니다. 처음 구현에서는 이 조건 검사 로직 자체가 통째로 빠져 있었던 적도 있었는데, 문법 오류 하나로 스크립트 전체가 조용히 죽어버려서 한동안 규칙이 전혀 작동하지 않았던 웃지 못할 사례도 있었습니다.
백은 왜 예외인가
이 게임에서 쌍삼 금지는 흑에게만 적용됩니다. 애초에 이 규칙이 생긴 이유가 선공인 흑의 구조적 우위를 상쇄하기 위한 것이었으니, 후공인 백에게까지 같은 제약을 걸 이유가 없기 때문입니다. 단순해 보이는 게임 하나에도 이렇게 오랜 시간 다듬어진 균형의 역사가 숨어 있다는 게 흥미롭습니다.