Твое задание
... сделать то, что Брайан Фантана, очевидно, не смог, и решить кубик Рубика 2x2x2.
Расположение
- - A B - - - -
- - C D - - - -
E F G H I J K L
M N O P Q R S T
- - U V - - - -
- - W X - - - -
И будет передан вам через стандартный ввод или командную строку (ваш выбор - укажите в своем ответе) в формате:
ABCDEFGHIJKLMNOPQRSTUVWX
Обратите внимание, что AD составляет U-грань (вверх), EFMN составляет L-грань (слева), GHOP - F-грань (спереди), IJQR - R-грань (справа), KLST - B-лицо (спина) и UX составляют D-лицо (вниз).
Будет шесть уникальных символов, представляющих каждый цвет, но они могут различаться, поэтому подготовьтесь к любой комбинации из 6 символов ascii, которые будут использоваться для каждого цвета.
Характеристики
- Ваш код должен выводить решение, используя только правую (R), верхнюю (U) и переднюю (F) грани, и должно использовать стандартные обозначения: R, R ', R2, U, U', U2, F, F ', F2. Вы можете найти больше информации здесь . Ограничение на подмножество RUF является стандартным для куба 2x2 (Совет: обрабатывайте нижний задний левый угол как фиксированное основание для работы).
- Ваш код должен быть способен решить все возможные перестановки карманного куба.
- Каждое решение должно занять менее 30 секунд.
- Каждое решение должно быть менее 30 ходов.
- Бонус -20% будет предоставлен для решений, всегда предоставляющих ответы менее чем за 20 ходов (пожалуйста, опубликуйте его в своем ответе, чтобы я мог тщательно его проверить)
- Бонус -50% будет предоставлен за код, который всегда обеспечивает оптимальное решение. - Опять же, пожалуйста, рекламируйте в своем ответе
- Решения не должны содержать два последовательных движения на одной и той же грани, потому что их можно легко объединить в одно движение.
- Решения могут содержать один пробел - и только один пробел - между каждым ходом.
- Вся последовательность решения, если необходимо, может содержаться в паре скобок, кавычек, фигурных скобок, скобок или вставок, но никакой другой посторонний вывод не допускается.
- Пожалуйста, предоставьте кратко прокомментированную версию вашего кода или подробное объяснение вашего кода.
- Нет использования внешних файлов. Это включает в себя Интернет, таблицы данных и библиотеки / пакеты, созданные для такого рода проблем.
- Самый короткий код по количеству байтов выигрывает.
- Победителя выбирают в среду (30 июля 2014 г.).