A repo for NYPC competition
Directory for practice problem Implemented 2-level MinMax search + alpha-beta pruning
For testing: type "python testing_tool.py" The game will be logged in log.py
버섯 게임을 끝낸 예티와 핑크빈은 이제 그란디스로 넘어와, 럭키 다이스 스킬을 쓰며 주사위를 던지던 과거를 회상하며 Yacht Auction이라는 보드게임을 하기로 했습니다.
- 한 경기는 13번의 라운드로 이루어집니다.
- 각 라운드는 입찰 단계와 점수 획득 단계로 이루어집니다.
- 예외적으로, 첫번째 라운드에서는 점수 획득 단계를 진행하지 않고, 마지막인 13번째 라운드에서는 입찰 단계를 진행하지 않습니다.
입찰 단계는 다음과 같이 진행됩니다.
- AA묶음 주사위 5개와 B묶음 주사위 5개를 굴립니다. 각 주사위는 1이상 6이하의 정수가 동일한 확률로 서로 독립적으로 나오는 주사위입니다.
- 각 사람은 자신이 가져가고 싶은 주사위 묶음 A 혹은 B와 입찰에 사용할 0 이상 100000 이하의 입찰 점수를 제출합니다.
- 제출한 주사위 묶음과 입찰 점수를 통해 다음 규칙에 따라 주사위를 가져갑니다.
- 서로 가져가고 싶은 주사위 묶음이 다른 경우 각자가 원하는 주사위 묶음을 가져갑니다.
- 서로 가져가고 싶은 주사위 묶음이 같은 경우 더 높은 점수를 제출한 사람이 해당 묶음을 가져갑니다.
- 만약 제출한 묶음과 입찰 점수가 모두 같다면 주사위를 가져가는 사람을 무작위로 정합니다. 각 사람이 선택될 확률은 같으며, 매 시행은 독립입니다.
- 이후 다음 규칙에 따라 점수를 계산합니다.
- 자신이 가져가고 싶은 주사위 묶음을 가져간 경우, 입찰 점수만큼 점수를 잃습니다.
- 자신이 가져가고 싶은 주사위 묶음을 가져가지 못한 경우, 입찰 점수만큼 점수를 얻습니다.
가지고 있는 주사위 10개(단, 마지막 점수 획득 단계에서는 5개)의 주사위 중 원하는 주사위를 5개 선택합니다. 이후, 다음 점수 규칙중 하나를 정해서 점수를 얻습니다. 한 경기에서 한 종류의 점수 규칙은 최대 한 번만 사용할 수 있습니다.
-
ONE: 1이 나온 주사위에 적힌 수의 합×1000점1이 나온 주사위에 적힌 수의 합×1 000
-
TWO: 2가 나온 주사위에 적힌 수의 합×1000점2가 나온 주사위에 적힌 수의 합×1 000
-
THREE: 3이 나온 주사위에 적힌 수의 합×1000점3이 나온 주사위에 적힌 수의 합×1 000
-
FOUR: 4가 나온 주사위에 적힌 수의 합×1000점4가 나온 주사위에 적힌 수의 합×1 000
-
FIVE: 5가 나온 주사위에 적힌 수의 합×1000점5가 나온 주사위에 적힌 수의 합×1 000
-
SIX: 6이 나온 주사위에 적힌 수의 합×1000점6이 나온 주사위에 적힌 수의 합×1 000
또한, 기본 점수 규칙에서 63 000점 이상을 얻은 경우 보너스 점수 35 000을 추가로 얻게 됩니다.
-
CHOICE: 다섯 개의 주사위에 적힌 모든 수의 합×1000점다섯 개의 주사위에 적힌 모든 수의 합×1 000
-
FOUR_OF_A_KIND: 같은 수가 적힌 주사위가 4개 있다면, 다섯 개의 주사위에 적힌 모든 수의 합×1000점. 없을 경우 0점다섯 개의 주사위에 적힌 모든 수의 합×1 000
-
FULL_HOUSE: 3개의 주사위에 적힌 수가 서로 같고, 다른 2개의 주사위에 적힌 수도 서로 같으면 다섯 개의 주사위에 적힌 모든 수의 합×1000점, 아닐 경우 0점다섯 개의 주사위에 적힌 모든 수의 합×1 000
-
SMALL_STRAIGHT: 4개의 주사위에 적힌 수가 1234,2345,3456중 하나로 연속되어 있을 때, 15000점, 아닐 경우 0점 -
LARGE_STRAIGHT: 5개의 주사위에 적힌 수가 12345,23456중 하나로 연속되어 있을 때, 30000점, 아닐 경우 0점 -
YACHT: 5개의 주사위에 적힌 수가 모두 같을 때 50000점, 아닐 경우 0점
모든 라운드가 끝난 이후, 총점이 높은 사람이 승리합니다. 총점이 같다면 무승부입니다.
- 플레이어의 총점=기본 점수 규칙에 따른 점수+조합 점수 규칙에 따른 점수+입찰 점수플레이어의 총점=기본 점수 규칙에 따른 점수+조합 점수 규칙에 따른 점수+입찰 점수