Trong trò chơi Freecell, bạn có nhiệm vụ xây dựng bốn cọc móng phù hợp từ ace đến vua, trên một bố cục nơi bạn xây dựng xuống dưới với màu sắc xen kẽ. Tuy nhiên, bạn chỉ có thể tạo một thẻ một lần, do đó bạn được cấp bốn "ô miễn phí" mỗi thẻ có thể chứa một thẻ để giúp bạn di chuyển toàn bộ chuỗi. Ý tưởng là bạn dệt các thẻ riêng lẻ vào và ra khỏi các ô miễn phí theo yêu cầu để giúp bạn giải quyết trò chơi.
Nhiệm vụ của bạn là xây dựng một chương trình sẽ giải quyết những trò chơi này trong một vài động tác có thể.
Chương trình của bạn sẽ lấy đầu vào là một chuỗi gồm 52 thẻ, theo định dạng sau:
2S 9H 10C 6H 4H 7S 2D QD KD QC 10S AC ...
Mà sẽ được xử lý trong bố trí ban đầu theo thứ tự này:
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
Và trả về một danh sách các động thái để giải quyết trò chơi. Mỗi di chuyển sẽ ở định dạng này:
- Một số đại diện cho số cọc (
1
thông qua8
) hoặc một ô miễn phí (A
đếnD
), đại diện cho cọc nguồn. - Một số hoặc chữ cái khác đại diện cho cọc đích hoặc ô tự do, hoặc
F
cho nền tảng của bộ đồ đó.
Đầu ra sẽ trông giống như thế này:
18 28 3A 8B 8C 85 B5 35 4F etc.
Một khi thẻ được đặt vào nền tảng, nó không thể được gỡ bỏ. Vì chỉ có một thẻ được di chuyển cùng một lúc, nên việc di chuyển một chuỗi 3 thẻ yêu cầu 5 lần di chuyển và một chuỗi 5 thẻ yêu cầu 9 lần di chuyển.
Nếu một trò chơi không thể giải quyết được, chương trình của bạn sẽ chỉ ra như vậy. Tuy nhiên, chương trình của bạn phải có khả năng giải quyết bất kỳ trò chơi có thể giải được.
Chương trình của bạn sẽ được đánh giá dựa trên 32.768 giao dịch được tìm thấy trong chương trình Microsoft FreeCell ban đầu. Để có hiệu lực, chương trình của bạn phải giải quyết thành công mọi giao dịch ngoại trừ giao dịch # 11.982 , không thể giải quyết được. Điểm của bạn sẽ là tổng số lần di chuyển cần thiết để giải quyết 32.767 giao dịch này, với mã ngắn hơn là một điểm dừng.
Một tệp có tất cả các sàn theo định dạng theo yêu cầu kỹ thuật ở trên có sẵn để tải xuống tại đây (tệp 5,00 MB): https://github.com/joezeng/pcg-se-files/raw/master/freecell_decks