Im Spiel Freecell musst du vier Grundpfähle in Farbe von Ass bis König auf einem Grundriss bauen, auf dem du in wechselnden Farben abwärts baust. Es kann jedoch immer nur eine Karte gleichzeitig erstellt werden. Daher erhalten Sie vier "freie Zellen", die jeweils eine Karte enthalten können, mit deren Hilfe Sie ganze Sequenzen verschieben können. Die Idee ist, dass Sie nach Bedarf einzelne Karten in die freien Zellen hinein- und herausweben, um das Spiel zu lösen.
Ihre Aufgabe ist es, ein Programm zu erstellen, das diese Spiele in möglichst wenigen Zügen löst.
Ihr Programm nimmt eine Folge von 52 Karten in folgendem Format als Eingabe:
2S 9H 10C 6H 4H 7S 2D QD KD QC 10S AC ...
Welche werden im ersten Layout in dieser Reihenfolge behandelt:
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
Und geben Sie eine Liste der Züge zurück, um das Spiel zu lösen. Jeder Zug wird in diesem Format sein:
- Eine Zahl, die die Stapelnummer (
1
bis8
) darstellt, oder eine freie Zelle (A
bisD
), die den Quellstapel darstellt. - Eine andere Zahl oder ein anderer Buchstabe, die bzw. der den Zielstapel oder die freie Zelle oder
F
die Grundlage dieser Klage darstellt.
Die Ausgabe sieht ungefähr so aus:
18 28 3A 8B 8C 85 B5 35 4F etc.
Sobald eine Karte in das Fundament gelegt wurde, kann sie nicht mehr entfernt werden. Da jeweils nur eine Karte bewegt wird, sind für das Bewegen einer Folge von 3 Karten 5 Züge und für eine Folge von 5 Karten 9 Züge erforderlich.
Wenn ein Spiel nicht lösbar ist, sollte Ihr Programm dies anzeigen. Ihr Programm muss jedoch in der Lage sein, jedes lösbare Spiel zu lösen.
Ihr Programm wird anhand der 32.768 Angebote des ursprünglichen Microsoft FreeCell-Programms bewertet. Um gültig zu sein, muss Ihr Programm jeden Deal mit Ausnahme von Deal # 11.982 , der nicht lösbar ist, erfolgreich lösen . Ihre Punktzahl ist die Gesamtzahl der Züge, die erforderlich sind, um diese 32.767 Deals zu lösen.
Eine Datei mit allen Decks im von der obigen Spezifikation geforderten Format steht hier zum Download bereit (5,00 MB-Datei): https://github.com/joezeng/pcg-se-files/raw/master/freecell_decks