문제 해결 스튜디오라는 우리의 수업에서 이젠 결국 육목 게임 알고리즘까지 구현하기 과제가 나와버렸다..
육목이란?
육목은 오목과 달리 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
'개발자의 성장 기록' 카테고리의 다른 글
우아콘2024 듣고 감명받은 "우아한플레이그라운드" 제작기 따라 해보기 (1편) (3) | 2024.12.02 |
---|---|
유연성 강화하기 - TDD 적으로 사고하며, 차근차근 꼼꼼하게! (0) | 2024.10.30 |
미국 팀 프로젝트 Badger 회고 (2) | 2024.10.01 |
유연성 강화하기 - 부끄러움에 '도전하기'를 도전하는 나 (2) | 2024.04.11 |
2023 ICPC 예선 후기 (1) | 2023.10.24 |