시즌 1 · 알파고편 / PART 2 · PART 2 · 게임을 푸는 첫 방법: 탐색 / Ch 2 · Minimax

코드: Minimax 재귀

실행하는 데 몇 초 걸려. 컴퓨터가 미래 모든 게임을 다 보고 있는 거.

결과를 보면 모든 자리가 0점이야. 무슨 의미일까?

🎯 결과 해석 — "틱택토는 무승부 게임"

점수 0은 무승부야. 어떤 자리에 두더라도, 두 사람이 최선을 두면 결과는 무승부. 이게 1950년대 이미 알려진 사실이고, 우리 코드가 이를 직접 증명한 거.

그래서 어린 시절 친구랑 틱택토 두면서 "맨날 무승부"라고 느낀 게 진실 — 두 사람이 진지하게 두면 절대 결판 안 남.

코드 핵심은 진짜 10줄:

def minimax(state, is_max):
    if 게임끝: return 점수
    if is_max:
        return max(자식들의 minimax 값)
    else:
        return min(자식들의 minimax 값)
💡 재귀의 우아함

이 짧은 함수가 트리 전체를 자동으로 훑어. 깊이가 9든 100이든 함수는 똑같이 동작. 컴퓨터 과학에서 가장 우아한 알고리즘 중 하나야.

틱택토는 다 볼 수 있어서 무패가 가능. 그런데 더 복잡한 게임에서는 끝까지 못 봐. 깊이 제한이 필요하지.

PYTHON