Ta tâche
.. est de faire ce que Brian Fantana n'a apparemment pas pu faire, et de résoudre le Rubik's Cube 2x2x2.
La disposition
- - A B - - - -
- - C D - - - -
E F G H I J K L
M N O P Q R S T
- - U V - - - -
- - W X - - - -
Et vous sera remis via stdin ou la ligne de commande (votre choix - veuillez préciser dans votre réponse) au format:
ABCDEFGHIJKLMNOPQRSTUVWX
Notez que AD constitue la face U (vers le haut), EFMN constitue la face L (gauche), GHOP constitue la face F (avant), IJQR constitue la face R (droite), KLST constitue la Face B (arrière) et UX composent la face D (bas).
Il y aura six caractères uniques représentant chaque couleur, mais ils peuvent varier, alors préparez-vous à toute combinaison de 6 caractères ascii à utiliser pour chaque couleur.
Caractéristiques
- Votre code doit générer une solution utilisant uniquement les faces droite (R), supérieure (U) et avant (F), et doit utiliser la notation standard: R, R ', R2, U, U', U2, F, F », F2. Vous pouvez trouver plus d'informations ici . La restriction du sous-ensemble RUF est standard pour le cube 2x2 (Astuce: traiter le coin inférieur arrière-gauche comme une base fixe à partir de laquelle travailler).
- Votre code doit être capable de résoudre toutes les permutations possibles du cube de poche.
- Chaque solution devrait prendre moins de 30 secondes.
- Chaque solution doit être inférieure à 30 mouvements.
- Un bonus de -20% sera accordé pour les solutions fournissant toujours des réponses à moins de 20 coups (veuillez en faire la publicité dans votre réponse afin que je puisse en faire une vérification approfondie)
- Un bonus de -50% sera accordé pour le code qui fournit toujours une solution optimale. - Encore une fois, veuillez annoncer dans votre réponse
- Les solutions ne doivent pas contenir deux mouvements consécutifs sur la même face, car ils peuvent être facilement combinés en un seul mouvement.
- Les solutions peuvent éventuellement contenir un seul espace - et seulement un seul espace - entre chaque mouvement.
- La séquence de solution entière, si nécessaire, peut être contenue dans une paire de parenthèses, guillemets, accolades, crochets ou carets, mais aucune autre sortie étrangère n'est autorisée.
- Veuillez fournir une version brièvement commentée de votre code ou une explication approfondie de votre code.
- Pas d'utilisation de fichiers externes. Cela inclut Internet, les tableaux de données et les bibliothèques / packages conçus pour ce type de problème.
- Le code le plus court par nombre d'octets gagne.
- Gagnant choisi mercredi (30 juillet 2014).