훌라 CPU 플레이어 만들기 Part 8: 처음 보는 판에서 재다

훌라 hard 봇의 값을 동결하고, 한 번도 쓰지 않은 딜 256개에서 최종 검증을 합니다. 실험이 고른 값을 일부러 쓰지 않은 자리와 그 이유, 시험 문제를 열기 전에 합격선을 못 박는 절차, 인원이 늘수록 두 배씩 벌어진 결과, 그리고 Part 4 의 여덟 자리 중 무엇이 메워졌고 무엇이 메운 줄 알았는데 아니었는지를 결산합니다.

[Read more]

훌라 CPU 플레이어 만들기 Part 7: 저울의 추를 하나씩 빼 보니

훌라 hard 봇을 시뮬레이터로 잽니다. 같은 딜에서 hard 와 easy 를 바꿔 앉혀 딜 운을 지우는 방법, 도구가 만들어지자마자 잡은 “다른 봇을 재고 있었다” 는 버그, 8 seed 로는 아무 말도 못 하고 32 seed 에서야 방향이 보인 첫 성적, 그리고 손으로 정한 추 열한 개를 하나씩 빼 보니 넷은 5만 번의 결정에서 수를 하나도 바꾸지 않았다는 사실까지 다룹니다.

[Read more]

훌라 CPU 플레이어 만들기 Part 6: 남의 차례에 끼어들고 판을 접는 판단

훌라 hard 봇의 땡큐와 스톱 판단을 다룹니다. 땡큐는 가져갔을 때와 안 가져갔을 때를 같은 자로 재야 한다는 것, 봇을 남의 차례에 깨우는 배선이 없으면 시뮬레이터에서 98% 를 가져가던 봇이 실제 서버에서는 한 번도 못 건다는 것, 일반 스톱은 기대값으로 판단하되 첫 구현에서 건 스톱의 36% 가 스톱박이 나 확률부터 고쳐야 했다는 이야기입니다.

[Read more]

훌라 CPU 플레이어 만들기 Part 5: 한 턴을 통째로 그려 보는 hard 봇

훌라 hard 봇이 자기 차례에 무엇을 알고 어떻게 한 수를 고르는지 다룹니다. 지금까지 공개된 카드를 적어 두는 장부, 이번 턴에 할 수 있는 모든 행동 순서를 끝까지 그려 보는 계획, 남은 손패를 재는 추 일곱 개짜리 저울, 그리고 저울보다 위에 있는 규칙까지 카드 게임 용어로 설명합니다.

[Read more]

훌라 CPU 플레이어 만들기 Part 4: easy 봇이 보지 못하는 여덟 자리

훌라 easy 봇의 한계를 여덟 자리로 정리합니다. 한 수 greedy 가 손패 전체를 깨뜨리는 실례, 7 을 전략적으로 쥘 줄 모르는 문제, 공개 카드를 기억하지 않는 문제까지 짚고, 이 여덟 개를 다 메우면 정말 강한 봇이 되는지를 앞선 두 시리즈의 실패 기록과 함께 따져 봅니다.

[Read more]

훌라 CPU 플레이어 만들기 Part 3: 규칙 다섯 줄짜리 easy 봇

훌라 easy 봇을 규칙 다섯 줄로 구현합니다. 뽑고, 가장 많이 터는 조합을 등록하고, 가장 많이 붙이고, 가장 비싼 카드를 버립니다. 짧은 코드지만 결정론과 fallback 이라는 두 가지 운영 요건을 만족해야 하고, 이 봇이 우연히 잘하는 것과 원리적으로 못 하는 것이 무엇인지 정리합니다.

[Read more]

훌라 CPU 플레이어 만들기 Part 2: 봇이 봐도 되는 것

훌라 봇을 만들기 전에 경계를 긋습니다. 봇이 봐도 되는 정보는 어디까지인지, 봇이 규칙을 다시 판단하면 왜 안 되는지, 봇이 한 턴이 아니라 한 수만 돌려줘야 하는 이유가 무엇인지 정리하고, easy 와 hard 가 각각 무엇을 더 보고 무엇을 더 결정하는지 비교합니다.

[Read more]

훌라 CPU 플레이어 만들기 Part 1: 룰북이 없는 게임의 룰을 정한다

훌라를 디지털 게임으로 만들 때 CPU 플레이어를 어떻게 설계할지 다루는 시리즈입니다. Part 1 에서는 봇 이야기를 시작하기 전에 룰셋부터 확정합니다. 7 한 장의 특권, 땡큐의 임자를 정하는 방식, 스톱 네 가지, 그리고 등수 기반 정산과 곱해지는 박까지 못 박습니다.

[Read more]