Подумываю сейчас о методе редукции к пиф-пафам —
[R, U] и перехватов недостаточно для сборки случайной ситуации кубика Рубика, но можно воспользоваться некоторыми хитростями.
Вижу метод таким:
Шаг 0. Решение "паритета".Первым делом нужно проверить, какая перестановка углов нам выпала — чётная или нечётная. Это можно сделать математически или проверить наличие паритета, как при сборке кубика Рубика вслепую.
Если нам выпала нечётная перестановка, её нужно решить поворотом любой грани на ±90°.
По завершению этого этапа, кубик можно решить, комбинируя эти алгоритмы:
[R, U],
[L', U'], x, y.
Шаг 1. Сборка углов нижнего слоя.На этом этапе будут полезны эти алгоритмы:
Шаг 2. Расстановка углов верхнего слоя.Если шаг 0 был решён правильно, то этот шаг можно решить за 0-2 3-цикла. Для сборки используются алгоритмы из предыдущего этапа.
Шаг 3. Ориентация углов.Тут будут полезны два алгоритма:
Шаг 4. Сборка рёбер.Можно решать этот этап, как один или разбивать его на подэтапы.
Лично я сначала решаю рёбра нижнего слоя, затем среднего, а затем верхнего слоя.
Я расставляю рёбра сразу правильно ориентированными всего одним алгоритмом:
[[R, U], [L', U']]
Это полностью рабочий метод сборки, решающий все возможные ситуации кубика Рубика 3x3x3, но есть интересный момент — на самом деле, для решения многих ситуаций (возможно, даже всех) на этапах 3-4, достаточно лишь
[R, U] и перехватов. И даже некоторые ситуации этапа 2 можно решить с помощью них:
- [R, U] — грязный 2+2-цикл углов;
- [R, U]3 — чистый 2+2-цикл углов;
- y' [R, U] y [R, U] y' [R, U]' y [R, U]' — ещё один грязный 2+2-цикл углов;
- y' [[R, U], y] [R, U]' — грязный 2+2-цикл углов;
- [R,U]2 y [R,U]2 y' [R,U]4 y [R,U]4 3-цикл двух рёбер на верхнем слое и одного на среднем;
- y2 z [R,U]2 y [R,U]4 y' [R,U]4 y [R,U]2— ещё один 3-цикл двух рёбер на верхнем слое и одного на среднем.
- y' [R, U]2 x' [R, U]2 x [R, U]4 x' [R, U]4 — 3-цикл рёбер вокруг верхнего переднего правого угла.
- [[R, U]: z' (y [R, U])2 y'] x' y' — 3-цикл рёбер на правой грани и 2+2-цикл углов.
Было бы интересно составить метод так, чтобы
[L', U'] использовался как можно меньше в сборке.