Part 1 부터 Part 6 까지는 코드와 수식이 많았습니다. 이번 편은 개발이나 수학을 모르는 분도 읽을 수 있게, 렉시오 CPU 두 종류가 각각 무엇을 보고 수를 고르는지, 둘을 어떻게 겨루게 했고 결과가 어땠는지, 그리고 무엇은 아직 말할 수 없는지를 정리했습니다.
Posts for: #Card-Game
렉시오 CPU 플레이어 만들기 Part 6: 봇이 약한지 어떻게 아는가
Part 5 는 브라우저에서 한 판 돌려 찾은 결함을 고쳤습니다. 그 방법으로는 “조금 약하다"를 찾을 수 없어 시뮬레이터를 만들었더니, 도구가 전략을 재기도 전에 구현 버그부터 잡아냈습니다. 그리고 봇이 약한 이유를 세 번 틀리고 네 번째에 찾았습니다. 평가 함수는 처음부터 옳았고, 확률이 틀렸습니다.
렉시오 CPU 플레이어 만들기 Part 5: 봇이 아무것도 하지 않는 이유
Part 1~4 에서 설계한 렉시오 hard 봇을 실제로 구현했더니 봇이 거의 모든 턴을 패스했습니다. 개별 항은 전부 맞았고 항을 합치는 방식이 틀렸습니다. 평가 함수가 무너지는 네 가지 자리와, 그 회귀 테스트가 엉뚱한 이유로 통과한 이야기를 다룹니다.
달무티 vs 렉시오 Part 3: 인원, 운, 정치, 그리고 무엇을 살 것인가
달무티와 렉시오를 실전 관점에서 비교하는 마지막 편입니다. 인원수별 체감, 운이 작동하는 방식, 정치성과 킹메이킹, 설명 난이도, 구성물, 초보자가 자주 하는 실수, 그리고 취향별 추천을 정리합니다.
달무티 vs 렉시오 Part 2: 강한 패, 혁명, 그리고 점수
달무티와 렉시오의 전략을 비교합니다. 강한 카드를 언제 어떻게 쓰는지, 광대와 조합 중첩이 패를 어떻게 바꾸는지, 계급과 점수가 다음 판에 어떻게 이어지는지, 그리고 렉시오 점수 계산의 핵심인 ‘2의 검사’를 공식 룰 기준으로 정리합니다.
달무티 vs 렉시오 Part 1: 같은 클라이밍 게임, 다른 목적
달무티와 렉시오는 둘 다 손패를 먼저 비우는 클라이밍 게임이지만 추구하는 경험이 다릅니다. Part 1 에서는 공식 룰북을 근거로 두 게임의 목적, 덱과 타일의 구성 철학, 낼 수 있는 조합, 리드권의 의미를 비교합니다.
달무티 CPU 플레이어 만들기 Part 4: 만들어 보니 hard 봇이 더 약했다
Part 1부터 3까지의 설계안을 실제로 구현해 시뮬레이션으로 재봤더니, hard 봇이 easy 봇보다 평균 0.6601등 나빴습니다. 무엇을 어떻게 쟀는지, 세 개의 구조 결함이 무엇이었는지, 어떤 고급 기능이 살아남았는지, 그리고 정정 후의 정식 검증 수치를 정리합니다.
렉시오 CPU 플레이어 만들기 Part 4: 수 평가와 정산 기대값
렉시오 hard 봇의 목적 함수를 정산 구조에서 직접 유도합니다. 수 평가 함수의 항을 분해하고, 낼 수 있어도 참아야 하는 여섯 가지 상황을 정리하며, 이길 수 없다고 판단했을 때 봇이 손실 최소화 모드로 전환하는 기준을 다룹니다.
렉시오 CPU 플레이어 만들기 Part 3: 손패 분해 플랜
렉시오 hard 봇이 자기 손패를 몇 번에 털 수 있는지 정확히 계산합니다. 유효 조합으로의 최소 분할을 비트마스크 DP 로 풀고, 탐욕법이 왜 다섯 번에 한 번꼴로 최적을 놓치는지, 그리고 DP 한 번이 왜 모든 후보의 평가까지 공짜로 끝내 주는지 다룹니다.
렉시오 CPU 플레이어 만들기 Part 2: 60비트 카운팅과 확실승수 판정
렉시오 hard 봇이 무엇을 아는지 다룹니다. 미공개 타일을 uint64 하나로 정확히 복원하고, 이 수를 아무도 못 받는다는 판정을 확률이 필요 없는 구조적 영역과 확률이 필요한 영역으로 나누며, 패스 로그를 비트마스크 제약으로 환산합니다.
렉시오 CPU 플레이어 만들기 Part 1: 타일 하나를 정수 하나로
렉시오(Lexio)를 디지털 게임으로 만들 때 CPU 플레이어를 어떻게 설계할지 다룹니다. Part 1 에서는 타일 60장을 정수 하나로 압축하는 표현을 잡고, 공식 룰의 비교 규칙을 정수 키 하나로 환원한 뒤, 결정적 규칙만으로 동작하는 easy 봇을 Go 코드로 구현합니다.
달무티 CPU 플레이어 만들기 Part 3: 수 평가와 전략적 패스
달무티 hard 봇이 실제로 어떤 수를 고르는지 다룹니다. 리드권 확보 확률과 가치를 분리한 수 평가 함수, 낼 수 있어도 참는 전략적 패스, 차단 의무의 정확한 조건, 세금과 혁명의 기대값 계산, 그리고 봇이 정말 세졌는지 재는 검증 방법을 Go 코드로 정리합니다.
달무티 CPU 플레이어 만들기 Part 2: hard 봇의 정보 모델과 확실승수 판정
달무티 hard 봇이 상대 손패를 훔쳐보지 않고 무엇을 알아낼 수 있는지 다룹니다. 오차 0의 카드 카운팅, 패스를 확정 정보가 아닌 확률적 증거로 다루는 법, 광대 2장이 만드는 구조적 확실승수 판정, 그리고 손패의 최소 제출 횟수 플랜을 재현 가능한 몬테카를로 수치와 함께 정리합니다.
달무티 CPU 플레이어 만들기 Part 1: 규칙 기반 easy 봇
달무티(The Great Dalmuti)를 디지털 게임으로 만들 때 CPU 플레이어를 어떻게 설계할지 다룹니다. Part 1 에서는 공정성 경계와 정책 인터페이스를 잡고, 결정적 규칙만으로 동작하는 easy 난이도 봇의 제출·패스·혁명·세금 정책을 Go 코드로 구현합니다.
대부호부터 렉시오까지: 클라이밍 카드게임의 세계와 전략
손패를 먼저 털어내는 자가 이기는 클라이밍 카드게임의 공통 규칙과 계보, 그리고 대부호·달무티·렉시오를 관통하는 전략과 게임별 심화 전략을 정리합니다.
훌라(Hula) 완전정복 Part 2: 전투훌라 실전 전략
전투훌라에서 이기는 법. 미등록박 회피, 손패 관리, 카드 카운팅, 버릴 카드 선택, 7과 조커 운영, 스톱 타이밍까지 초보자가 바로 써먹을 수 있는 실전 전략을 정리했습니다.
훌라(Hula) 완전정복 Part 1: 유래부터 규칙, 전투훌라까지
한국에서 태어난 러미 계열 카드게임 ‘훌라’의 유래와 기본 규칙, 그리고 가장 널리 즐기는 변형 ‘전투훌라’까지 초보자 눈높이로 정리했습니다. 홀덤과의 차이도 짚어봅니다.