Il tuo compito
.. è fare ciò che apparentemente Brian Fantana non potrebbe fare, e risolvere il cubo di Rubik 2x2x2.
Lo schema
- - A B - - - -
- - C D - - - -
E F G H I J K L
M N O P Q R S T
- - U V - - - -
- - W X - - - -
E ti verrà dato tramite stdin o la riga di comando (a tua scelta - specifica nella tua risposta) nel formato:
ABCDEFGHIJKLMNOPQRSTUVWX
Si noti che AD compone la faccia a U (in alto), EFMN compone la faccia a L (a sinistra), GHOP compone la faccia a F (anteriore), IJQR compone la faccia a R (a destra), KLST compone la B-face (retro) e UX compongono la D-face (giù).
Ci saranno sei caratteri unici che rappresentano ciascun colore, ma possono variare, quindi preparati a qualsiasi combinazione di 6 caratteri ASCII da utilizzare per ciascun colore.
specificazioni
- Il codice dovrebbe generare una soluzione usando solo le facce Destra (R), Superiore (U) e Anteriore (F) e dovrebbe usare la notazione standard: R, R ', R2, U, U', U2, F, F ', F2. Puoi trovare maggiori informazioni qui . La restrizione al sottoinsieme RUF è standard per il cubo 2x2 (Suggerimento: considera l'angolo inferiore posteriore-sinistro come una base fissa su cui lavorare).
- Il codice deve essere in grado di risolvere tutte le possibili permutazioni del cubo tascabile.
- Il completamento di ogni soluzione dovrebbe richiedere meno di 30 secondi.
- Ogni soluzione dovrebbe essere inferiore a 30 mosse.
- Un bonus del -20% verrà dato per le soluzioni che forniscono sempre risposte inferiori a 20 mosse (pubblicizzalo nella tua risposta in modo che io possa fare un controllo approfondito)
- Un bonus del -50% verrà dato per il codice che fornisce sempre una soluzione ottimale. - Ancora una volta, per favore pubblicizza nella tua risposta
- Le soluzioni non devono contenere due mosse consecutive sulla stessa faccia, poiché possono essere facilmente combinate in una mossa.
- Le soluzioni possono facoltativamente contenere un singolo spazio - e solo un singolo spazio - tra ogni mossa.
- L'intera sequenza della soluzione, se necessario, può essere contenuta in una coppia di parentesi, virgolette, parentesi graffe, parentesi quadre o punti di inserimento, ma non sono consentite altre uscite estranee.
- Fornisci una versione brevemente commentata del codice o una spiegazione approfondita del codice.
- Nessun uso di file esterni. Ciò include Internet, tabelle di dati e librerie / pacchetti creati per questo tipo di problema.
- Vince il codice più breve per numero di byte.
- Vincitore scelto mercoledì (30 luglio 2014).