후기 아닌 후기

개발 기간때는 너무 바빴어서 마감 당일 새벽에 겨우 완성한 뒤 제대로 테스트도 못해보고 그냥 냈는데, 오늘 대회를 하면서 보니 초반에 놓여있는 돌에 따라 선/후수의 유불리가 너무 갈렸다. 이게 상대방으로부터 방해를 받지 않는 2개가 연결된 쌍(pair라고 해야하려나)을 2개 가지고 있으면 진짜 웬만큼 삽질을 하지 않는한 4개를 연결해 공격만 계속하다보면 알아서 이겨있는데, 맨 처음에 주어진 돌이 많으면 많을수록 선수가 pair를 2개 잡는 것이 굉장히 쉬워지고 주어진 돌이 적으면 적을수록(특히 2개일 경우) 선수는 맨 처음 1개를 둬서 pair를 만드는 것이 불가능한데 후수는 그냥 선수가 노리지 않는 다른 block에 찾아가서 2개를 둬 pair를 여러 개 확보할 수 있다.


현재 룰 안에서는 프로그램이 어느 정도 수준만 올라서고나면 그냥 무조건 초반 배치에 따라 승/패가 갈린다. 결승때 포지션이 좋게 나와 이겼긴 했지만 만약 흑백을 바꿔잡고 경기를 진행했다면 100% 졌을 것이다. 룰이 변경될 필요가 있다. 추가적으로 왜 작년 2,3위 팀이 왜 다 부산에 와있지ㅎㅎㅎ...


-----------------


[+] 2019-04-12 추가


2017년과 같이 2018년에도 만드는 과정 중에 틈틈히 글을 남기면서 하려고 했는데 당시에 SCPC, 숭고한 알고리즘 캠프 강의 준비 등등으로 너무 바빴어서 글을 남기지 못했네요. 기회가 닿는다면 자세하게 제가 구현을 한 방식을 소개하고 싶은데 언제 시간이 날지는 잘 모르겠습니다 ^_____^


2018 삼성 육목대회 결선 후기 - https://blog.encrypted.gg/643

  Comments
  • 비밀댓글입니다
  • 흠래
    작년 1,2,3위가 왜 부산에.....팀명 상특) 부산으로 도망옴 하시지;;
    농담이고 수고하셨습니다 노란머리 멋지네요
  • ㅂㅈㄷ
    선생님 깃허브 주소 부탁드립니다
    궁금하네요
  • 포스텍팀
    포스텍팀입니다... 사실 작년과 같은 알고리즘입니다..
    내년에는 개선해서 한번 더 붙고싶네요. ㅎㅎ
    그러게요..왜 고대분이 부산에...오셨는지..저는 포항이라 부산이긴했는데 ㅎㅎ
  • 비밀댓글입니다
  • sapphire
    안녕하세요.. 제가 잘 모르는 것 같아서 우문일지도 모르지만
    삼성 육목알고리즘 프로그램이 없이 따로 코드를 돌려볼 수 있는 방법은 없을까요..?ㅠ
    • 깃헙에 육목 코드는 확인하셨죠? (https://github.com/blisstoner/Connect6AI_SamsungDSCompetition)
      보면 AI_Algorithm_Code.cpp의 myturn() 함수가 착수를 진행하는 함수에요.

      그리고 상대의 착수가 진행된 후에는 상대의 착수를 RenewalOpponentMoves 함수를 이용해서 CurrentOpponentMoves 변수에 담아야해요.

      정리하자면

      1. AI_Algorithm_Code.cpp만 가져간다.

      2. 맵 상태를 저장할 전역변수를 하나 둔 후 myturn() 함수의 끝에 domymove(...)를 호출하게 만든 것을 지우고 그 전역변수의 값을 바꾸게끔 한다.

      3. 해당 파일 안에 main을 만든다.

      4. main에서는 반복문을 돌리며 myturn(1)을 호출하고, 상대가 둘 곳을 scanf로 받던가 해서 전역변수에 쓰고 RenewalOpponentMoves 를 호출하도록 한다.

      이정도가 되겠습니다.
댓글 쓰기