Accordion 은 최근에 거의 모든 레이아웃을 해결할 수 있지만 엄청나게 어려운 솔리테어 카드 게임입니다. 여기서 재생할 수 있습니다 .
규칙
52 개의 얼굴 카드가 무작위 순서로 위로 향하게 배치됩니다. 매 턴마다 카드를 다음 카드로 교체합니다. 두 카드는 다음과 같습니다.
- 양복이나 번호를 공유 하고
- 1 (인접) 또는 3 (두 카드 사이)의 거리에 있습니다.
남은 카드가 1 장 남았을 때 승리 합니다. 각 입력을 해결할 수 있다고 가정 할 수 있습니다. 교체 된 카드는 항상 교체 카드보다 우선해야합니다.
예
예를 들어 다음 레이아웃을 고려하십시오.
2H,2S,1S,2D (H: Hearts, S: Spades, D: Diamonds)
여기에는 3 가지 가능한 동작이 있습니다.
- 를 교체
2H
이웃과2S
우리가 끝낼 수 있도록,2S,1S,2D
- 를 교체
2S
이웃과1S
우리가 끝낼 수 있도록,2H,1S,2D
- 바꾸기
2H
과를2D
우리가 끝낼 수 있도록, (3의 거리)2D,2S,1S
그 3 개 이동 중 마지막 하나는 (당신은 대체하여 승리 승리의 가능성이 2D <- 2S
그 다음을, 2S <- 1S
).
입출력
당신의 임무는 아코디언 솔버를 작성하는 것 입니다. 당신은 카드의 목록을 전달하고 게임을 해결하기 위해 이동 목록을 반환해야합니다.
쉼표로 구분 된 문자열로 카드 목록이 전달됩니다. 여기서 각 카드는 숫자 값을 나타내는 정수로 전달 된 다음 해당 양복을 나타내는 문자로 전달됩니다.
교체 목록을 쉼표로 구분 된 문자열로 반환해야합니다. 여기서 각 교체는 형식 Card <- Card
(위에서 설명한 카드 형식에 따름)으로되어 있습니다. 각 쌍의 첫 번째 카드는 교체되는 카드입니다.
테스트 사례 :
5H,1C,12S,9C,9H,2C,12C,11H,10C,13S,3D,8H,1H,12H,4S,1D,7H,1S,13D,13C,7D,12D,6H,10H,4H,8S,3H,5D,2D,11C,10S,7S,4C,2H,3C,11S,13H,3S,6C,6S,4D,11D,8D,8C,6D,5C,7C,5S,9D,10D,2S,9S
5H,9C,11H,7S,7D,12D,6H,10S,3H,4D,12C,2S,3C,5C,7H,6S,1H,8S,2H,11S,4C,10D,12H,9H,2D,4H,6C,13H,11C,2C,10H,8C,1S,11D,3S,12S,7C,5D,13S,8D,4S,6D,13C,3D,8H,13D,1D,9D,9S,1C,5S,10C
7H,11C,8C,7S,10D,13H,4S,10C,4D,2C,4H,13D,3C,2H,12C,6C,9H,4C,12H,11H,9S,5H,8S,13S,8H,6D,2S,5D,11D,10S,1H,2D,5C,1C,1S,5S,3H,6S,7C,11S,9C,6H,8D,12S,1D,13C,9D,12D,3D,7D,10H,3S
이 경쟁은 코드 골프 이지만, 특히 시간 효율적인 솔루션에 관심이 있으며 독창적 인 솔루션으로 현상금을 보상 할 수 있습니다. 그러나 천문학적 인 시간이 걸리는 솔루션은 여전히 수용 가능합니다 (16 카드, 4 벌 데크와 같은 더 작은 데크로 테스트하는 것이 좋습니다).