Freecellのゲームでは、エースからキングまでスーツに合わせて4つの基礎杭を構築し、交互に色を変えながら下向きに構築します。ただし、一度に作成できるカードは1つだけなので、シーケンス全体を移動するのに役立つ1つのカードを含むことができる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
toD
)。 - 宛先のパイルまたはフリーセルを表す別の数字または文字、または
F
そのスーツの基礎用。
出力は次のようになります。
18 28 3A 8B 8C 85 B5 35 4F etc.
カードを土台に入れると、取り外すことはできません。一度に1枚のカードのみが移動するため、3枚のカードのシーケンスを移動するには5回の移動が必要で、5枚のカードのシーケンスを移動するには9回の移動が必要です。
ゲームが解決できない場合、プログラムはそのように示す必要があります。ただし、プログラムは解決可能なゲームを解決できる必要があります。
プログラムは、元のMicrosoft FreeCellプログラムで見つかった32,768件の取引で審査されます。有効にするためには、プログラムは、取引#11,982を除くすべての取引を正常に解決する必要がありますが、これは解決できません。スコアは、これらの32,767件の取引を解決するために必要な移動の合計数になり、短いコードがタイブレーカーになります。
上記の仕様で必要な形式のすべてのデッキを含むファイルは、こちらからダウンロードできます(5.00 MBファイル):https : //github.com/joezeng/pcg-se-files/raw/master/freecell_decks