시즌 1 · 알파고편 / PART 1 · PART 1 · 바둑이라는 우주 / Ch 6 · Board 클래스 만들기

코드 2부: play() + score()

드디어 완성. 한 클래스 안에 모든 로직이 깔끔하게 정리됨.

🔑 play() 메서드 흐름 다시
  1. 유효성: 빈 자리가 아니면 'illegal'
  2. 둔다: self.grid[r][c] = color
  3. 적 따냄: 인접 적 그룹 중 활로 0인 것 제거
  4. 자살수 체크: 내 그룹 활로 0이면 무효, 복원
  5. 패 체크: 새 상태가 직전 상태와 같으면 무효, 복원
  6. 성공: prev_grid 갱신, 포로 카운트

위 테스트를 보면 마지막 흑 (2,4)에서 백 (2,3)이 활로 0 되어 잡힘. 흑 포로 1. 백돌이 깨끗이 사라진 게 보임.

다음 페이지에서 이 클래스로 진짜 짧은 대국을 시뮬레이션해보자.

PYTHON