Das 8-Puzzle ist die kleinere Variante des 15-Puzzles (oder des Schiebepuzzles ). Sie haben ein 3x3
Raster, das mit Zahlen von 0 bis 8 gefüllt ist (0 bezeichnet die leere Kachel) und in zufälliger Reihenfolge angeordnet ist. Ihre Aufgabe ist es, ein 3x3-Raster einzugeben und die kürzeste Lösung (minimale Züge) anzuzeigen, um zum Zielzustand zu gelangen. Zeigen Sie jeden Boardstatus einschließlich des ersten Status in der Ausgabe an.
Möglicherweise gibt es mehrere optimale Lösungen. Sie müssen nur eine drucken.
Eingabe: (kleines Beispiel)
1 2 0
4 5 3
7 8 6
Ausgabe:
2 <- denotes minimum number of moves required
1 2 0
4 5 3
7 8 6
1 2 3
4 5 0
7 8 6
1 2 3
4 5 6
7 8 0 <- goal state
Wenn das Rätsel nicht gelöst werden kann, drucken Sie einfach -1
(unlösbar)
Bearbeiten : Zeitlimit: <30 Sekunden.
code-golf
sliding-puzzle
st0le
quelle
quelle
grid which is filled with numbers from 0-9
seingrid which is filled with numbers from 0-8
?Antworten:
Python, 418 Zeichen
Der Code listet alle Positionen vollständig auf und erstellt Karten ihrer Tiefe (D) und einer Position, die näher an der gelösten liegt (E). Dann wird der Zielstatus nachgeschlagen, um die Ausgabe zu erhalten.
quelle
' '*3
Trick.