문제 해결 스튜디오라는 우리의 수업에서 이젠 결국 육목 게임 알고리즘까지 구현하기 과제가 나와버렸다..
육목이란?
육목은 오목과 달리 6개의 돌을 정렬해야 우승하는 게임으로, 수를 둘 때도 하나씩만 두는 오목과 달리 2개씩 둘 수 있다.
또한 이러한 육목은 게임 순서에 따라 후공이 불리한 오목과 달리 턴을 마친 사람의 돌이 상대방보다 늘 1개씩 더 많기 때문에 어느 한쪽이 유리하지 않는다고 한다.
룰
판은 19x19인 바둑판에서 진행되며,
규칙은 매우 간단한데, 흑이 선공으로 돌 하나를 두고 다음 턴부터는 모두 두 개씩 두다가 먼저 육목을 만드는 사람이 이기는 거다.
쉬운 요약:
- 흑돌이 먼저 한 개 둠
- 백돌이 두 개 둠
- 흑돌이 두 개 둠
(이후 2번으로 돌아가 백돌이 두 개, 흑돌 두 개씩 무한반복)
… (누군가 육목 만듦 == 우승)
그래서 개발은...?
연습 서버로 학교 교수님이 만들어 놓으신 인공지능 육목대회를 위해 개발한 API, 1인용 디버깅용 게임을 사용하였다.
추가적인 룰로는
- 게임의 다양성을 높이기 위해 심판이 게임 시작 직전에 0~5개의 착수금지점(적돌)을 임의로 배치함.
- 잘못된 위치에 착수하는 경우, 몰수패.
- 수는 30초 이내에 해야 함. 타임 오버시 패배
나와 팀원은 C 를 사용하여 작업하기로 하였고 결과적으로 토너먼트 형식으로 동메달을 획득했다. 최소 은메달이라고 생각했으나 준결승에서 우승팀을 만나서 아쉽게 마무리하였다. 대진운…
자세한 코드와 깃허브는 하단에 그리고 개발 과정은 하나씩 기억나는 대로 적어볼 예정이다.
코드
GitHub - Connect6AI/CONNSIX
Contribute to Connect6AI/CONNSIX development by creating an account on GitHub.
github.com
GitHub - ARISE-Handong/CONNSIX
Contribute to ARISE-Handong/CONNSIX development by creating an account on GitHub.
github.com