Deine Aufgabe
.. soll das tun, was Brian Fantana anscheinend nicht konnte, und den 2x2x2 Rubik's Cube lösen.
Das Layout
- - A B - - - -
- - C D - - - -
E F G H I J K L
M N O P Q R S T
- - U V - - - -
- - W X - - - -
Und wird Ihnen über stdin oder die Kommandozeile (Ihre Wahl - bitte in Ihrer Antwort angeben) in folgendem Format mitgeteilt:
ABCDEFGHIJKLMNOPQRSTUVWX
Beachten Sie, dass AD die U-Seite (up), EFMN die L-Seite (left), GHOP die F-Seite (front), IJQR die R-Seite (right) und KLST die B-Gesicht (Rückseite) und UX bilden das D-Gesicht (nach unten).
Es gibt sechs eindeutige Zeichen für jede Farbe, die jedoch variieren können. Bereiten Sie sich also auf eine beliebige Kombination von 6 ASCII-Zeichen vor, die für jede Farbe verwendet werden sollen.
Spezifikationen
- Ihr Code sollte eine Lösung nur mit der rechten (R), oberen (U) und vorderen (F) Seite ausgeben und die Standardnotation verwenden: R, R ', R2, U, U', U2, F, F ', F2. Weitere Infos finden Sie hier . Die Beschränkung auf die RUF-Teilmenge ist Standard für den 2x2-Würfel (Hinweis: Behandeln Sie die linke untere Ecke als feste Basis, von der aus Sie arbeiten können).
- Ihr Code muss in der Lage sein, alle möglichen Permutationen des Taschenwürfels zu lösen.
- Jede Lösung sollte weniger als 30 Sekunden dauern.
- Jede Lösung sollte weniger als 30 Züge umfassen.
- Ein Bonus von -20% wird für Lösungen gewährt, die Antworten mit weniger als 20 Zügen enthalten. (Bitte geben Sie dies in Ihrer Antwort an, damit ich eine gründliche Überprüfung durchführen kann.)
- Für Code, der immer eine optimale Lösung bietet, wird ein Bonus von -50% gewährt. - Bitte bewerben Sie sich erneut in Ihrer Antwort
- Die Lösungen dürfen nicht zwei aufeinanderfolgende Züge auf derselben Seite enthalten, da sie leicht zu einem Zug kombiniert werden können.
- Lösungen können optional ein einzelnes - und nur ein einziges - Leerzeichen zwischen den einzelnen Zügen enthalten.
- Bei Bedarf kann die gesamte Lösungssequenz in Klammern, Anführungszeichen, geschweiften Klammern, Klammern oder Carets angegeben werden. Es ist jedoch keine andere externe Ausgabe zulässig.
- Bitte geben Sie entweder eine kurz kommentierte Version Ihres Codes oder eine ausführliche Erklärung Ihres Codes an.
- Keine Verwendung von externen Dateien. Dies schließt Internet, Datentabellen und Bibliotheken / Pakete ein, die für diese Art von Problem erstellt wurden.
- Die kürzeste Anzahl von Codes pro Byte gewinnt.
- Der Gewinner wurde am Mittwoch (30. Juli 2014) ausgewählt.