결! 합! 게임에서 사용되는 카드는 위와 같이 27가지로 구성되어 있으며, 각 카드는 (도형, 도형색, 배경색) 이렇게 3가지 속성을 갖고 있다.
결 !합! 에 참가하는 플레이어는 '합'이 되는 3장의 카드를 찾아야 한다. 여기서 '합' 이란 3가지 속성이 모두 같거나 모두 다른 카드들로 이루어진 3장의 묶음을 말한다.
예를 들어 위 예제는, "모든 도형"이 같고, "모든 도형의 색"이 다르며, "모든 배경색"이 같다. 그러므로 이 3개의 카드 묶음은 '합' 이 된다.
하지만 위 세트는 첫번째 도형은 삼각형인데, 두, 세번째 도형만 사각형으로 모든 도형이 같지도 다르지도 않으므로 '합'이 아니다.
게임에서는 총 9장의 카드가 공개되며, 두명의 플레이어가 한번 씩 번갈아가며 정답을 외칠 기회가 10초 씩 주어진다. 주어진 시간동안 한번이라도 정답혹은 오답을 말한 경우 기회는 다음 사람에게 넘어간다.
자기 차례가 된 플레이어는 3가지중 하나를 할 수 있다.
-
'합': 호명한 조합이 '합'일 경우 +1점, 그렇지 않을경우 -1점이 된다. 이미 앞에서 호명한 '합'을 외친 경우에도 -1점이 된다.
-
'결': 9장의 카드에서 더이상 '합'이 없다고 판단된다면 '결'을 외칠 수 있다. 실제로 '합'이 되는 카드가 더 이상 없을 경우 '결'을 외친 플레이어는 +3점이 되고 게임이 종료된다. 하지만 '결'을 외친 시점에서 '합'이 되는 카드 조합이 남아 있다면 해당 플레이어는 -1점이 된다.
-
시간초과: 주어진 10초 동안 정답을 찾지 못해서 시간을 보내거나, 자신이 '결'을 외치기 위해 정답 조합이 한개만 남아 있을 경우 전략상 아무것도 외치지 않고 그냥 시간초과를 할 수 있다. 상대방이 마지막 남아있는 '합'을 외치고, 본인 차례가 왔을 때 '결'을 외치면 더 많은 점수를 얻을 수 있기 때문에 남은 조합이 한개라는 것을 확신한다면 플레이어는 아무것도 말하지 않고 시간을 보낼 수도 있다.
게임에서 사용할 9장의 카드 정보가 주어지고, 각 플레이어 A, B가 외친 카드 조합이 주어질 때, 각 플레이어의 점수를 출력하는 프로그램을 만들자.
단 플레이어가 너무 많은 실수를 해서 점수가 0점이 되었다면, 더 이상의 감점은 발생하지 않는다.