프리셀 게임에서는 에이스부터 킹까지 4 가지 기초 더미를 만드는 작업을해야합니다. 그러나 한 번에 하나의 카드 만 만들 수 있으므로 각 시퀀스를 이동하는 데 도움이되는 하나의 카드를 포함 할 수있는 4 개의 "무료 셀"이 제공됩니다. 아이디어는 게임을 해결하는 데 도움이되도록 필요에 따라 자유 셀 안팎으로 개별 카드를 짜는 것입니다.
당신의 임무는 가능한 최소한의 움직임으로 이러한 게임을 해결하는 프로그램을 구축하는 것입니다.
프로그램은 다음과 같은 형식으로 52 장의 카드를 입력으로받습니다 :
2S 9H 10C 6H 4H 7S 2D QD KD QC 10S AC ...
다음 순서로 초기 레이아웃에서 처리됩니다.
01 02 03 04 05 06 07 08
09 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52
그리고 게임을 해결하기 위해 이동 목록을 반환합니다. 각 이동은 다음 형식으로 이루어집니다.
- 소스 파일을 나타내는 파일 번호 (
1
~8
) 또는 자유 셀 (A
~D
)을 나타내는 번호입니다. - 대상 더미 또는 자유 세포를 나타내는 또 다른 숫자 또는 문자, 또는
F
해당 소송의 기초.
결과는 다음과 같습니다.
18 28 3A 8B 8C 85 B5 35 4F etc.
카드를 파운데이션에 넣은 후에는 카드를 제거 할 수 없습니다. 한 번에 하나의 카드 만 이동하기 때문에 3 장의 카드를 이동하려면 5 이동이 필요하고 5 장의 카드는 9 이동이 필요합니다.
게임을 해결할 수없는 경우 프로그램에 해당 내용이 표시되어야합니다. 그러나 프로그램은 모든 해결 가능한 게임을 해결할 수 있어야합니다.
귀하의 프로그램은 원래 Microsoft FreeCell 프로그램에서 발견 된 32,768 개의 거래에서 심사됩니다. 프로그램이 유효하려면 거래 # 11,982를 제외한 모든 거래를 성공적으로 해결해야합니다 . 이 32,767 건의 거래를 해결하는 데 걸리는 총 횟수는 점수가 짧을수록 점수가 매겨집니다.
위 사양에 필요한 형식으로 모든 데크가있는 파일은 여기에서 다운로드 할 수 있습니다 (5.00MB 파일) : https://github.com/joezeng/pcg-se-files/raw/master/freecell_decks