시즌 1 · 알파고편 / PART 7 · PART 7 · AlphaZero (2017) / Ch 3 · 틱택토/커넥트포 학습

코드: 틱택토 Game 인터페이스

틱택토를 알파고 인터페이스에 맞춰 구현. 5개 메서드만 구현하면 알파고 코드가 동작.

🎯 핵심 — Board 클래스와 거의 동일

PART 1의 Board와 비교:

  • possible_moves(): 빈 자리 ✅ 동일
  • play(move): 새 보드 반환 ✅ 동일
  • is_terminal(): 승자 또는 보드 가득 ✅ 비슷
  • winner_value(): -1/0/+1 ✅ 비슷
  • to_input(): 3채널 (X/O/빈) ✅ 동일

차이: 보드 크기 (3x3), 종료 조건 (3 일직선)만. 인터페이스 그대로.

💡 이제 가능한 것

이 TicTacToe 클래스를 PART 5/6의 MCTS와 신경망 코드에 그대로 넘기면:

  • mcts_alphago(game, net, n_iter=500) — 동작!
  • play_one_game(net) — 동작! (game 인스턴스만 바꾸면)
  • 학습 데이터 생성, 학습, 평가 — 모두 동작

알고리즘 코드는 0줄도 안 바꿈. 인터페이스의 힘.

📊 신경망 출력 크기만 조정

틱택토 9 자리 → 신경망의 policy 출력 크기 9 (alphago zero는 9+1=10 with pass).

알파고 7x7 49 자리 → 49. 19x19 → 361+1=362.

이것만 게임마다 다름. 나머지 100% 동일.

PYTHON