코드 2부: play() + score()
드디어 완성. 한 클래스 안에 모든 로직이 깔끔하게 정리됨.
🔑 play() 메서드 흐름 다시
- 유효성: 빈 자리가 아니면 'illegal'
- 둔다:
self.grid[r][c] = color - 적 따냄: 인접 적 그룹 중 활로 0인 것 제거
- 자살수 체크: 내 그룹 활로 0이면 무효, 복원
- 패 체크: 새 상태가 직전 상태와 같으면 무효, 복원
- 성공:
prev_grid갱신, 포로 카운트
위 테스트를 보면 마지막 흑 (2,4)에서 백 (2,3)이 활로 0 되어 잡힘. 흑 포로 1. 백돌이 깨끗이 사라진 게 보임.
다음 페이지에서 이 클래스로 진짜 짧은 대국을 시뮬레이션해보자.
PYTHON