Skip to content

joowonkime/NYPC

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NYPC

A repo for NYPC competition

Practice: Mushroom game

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번째 라운드에서는 입찰 단계를 진행하지 않습니다.

입찰 단계

입찰 단계는 다음과 같이 진행됩니다.

  1. AA묶음 주사위 5개와 B묶음 주사위 5개를 굴립니다. 각 주사위는 1이상 6이하의 정수가 동일한 확률로 서로 독립적으로 나오는 주사위입니다.
  2. 각 사람은 자신이 가져가고 싶은 주사위 묶음 A 혹은 B와 입찰에 사용할 0 이상 100000 이하의 입찰 점수를 제출합니다.
  3. 제출한 주사위 묶음과 입찰 점수를 통해 다음 규칙에 따라 주사위를 가져갑니다.
    • 서로 가져가고 싶은 주사위 묶음이 다른 경우 각자가 원하는 주사위 묶음을 가져갑니다.
    • 서로 가져가고 싶은 주사위 묶음이 같은 경우 더 높은 점수를 제출한 사람이 해당 묶음을 가져갑니다.
    • 만약 제출한 묶음과 입찰 점수가 모두 같다면 주사위를 가져가는 사람을 무작위로 정합니다. 각 사람이 선택될 확률은 같으며, 매 시행은 독립입니다.
    1. 이후 다음 규칙에 따라 점수를 계산합니다.
    • 자신이 가져가고 싶은 주사위 묶음을 가져간 경우, 입찰 점수만큼 점수를 잃습니다.
    • 자신이 가져가고 싶은 주사위 묶음을 가져가지 못한 경우, 입찰 점수만큼 점수를 얻습니다.

점수 획득 단계

가지고 있는 주사위 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점

최종 점수 및 승리 조건

모든 라운드가 끝난 이후, 총점이 높은 사람이 승리합니다. 총점이 같다면 무승부입니다.

  • 플레이어의 총점=기본 점수 규칙에 따른 점수+조합 점수 규칙에 따른 점수+입찰 점수플레이어의 총점=기본 점수 규칙에 따른 점수+조합 점수 규칙에 따른 점수+입찰 점수

About

A repo for NYPC competition

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 93.0%
  • C++ 6.6%
  • Other 0.4%