패 규칙 — 직전 상태로 돌아가지 마라
해결책은 간단해.
📖 패 규칙 (Ko Rule)
한 수를 두어서 보드가 직전 수 직후의 상태와 똑같아지는 수는 둘 수 없다.
이게 단순 패(simple ko) 규칙. 가장 흔한 룰이야. 앞 페이지의 시나리오로 다시 보면:
- 흑이 (2,2)에 둬서 백 잡음 → 보드 상태 A
- 백이 (2,3)에 두려고 함. 두면 흑 잡혀서 보드 상태가 직전 상태(흑이 두기 전, 즉 상태 A로 가는 직전 단계)와 같아짐.
- → 패 규칙 위반, 금지.
그럼 백은 어떻게 해야 할까? 그 자리에 영영 못 두는 건 아니야. 한 수를 다른 데에 두면, 그 다음 차례에는 둘 수 있어. 그동안에는 다른 곳에 둬야 하지.
💡 바둑 전술 — 패 싸움(ko fight)
패 규칙 때문에 흑이 "다른 곳에 큰 위협"을 만들면, 백이 그 위협에 대응하느라 한 수를 쓰고 → 그 사이 흑이 패를 다시 둘 수 있어. 이걸 패 싸움이라고 하고, 진짜 바둑에서 가장 흥미진진한 전술 중 하나야.
알파고가 이세돌과 두던 대국에서도 패 싸움이 여러 번 나왔어. 우리는 일단 룰만 구현하고, 패 싸움 전략은 PART 5에서 다룸.
코드로는 어떻게 표현? 답: 직전 보드 상태를 메모리에 저장해두고, 새 수를 둔 후 보드가 그 직전 상태와 같으면 무효 처리. 다음 페이지에서 직접 짜자.