28 июля 2010 в 20:41

Как собрать Кубик Рубика 5х5х5 (часть 2)

Итак, мы постепенно выходим на финишную прямую сборки Кубика Рубика 5х5х5! Осталось дособирать рёбра куба и центральные квадраты. Кроме того, есть программа-эмулятор кубика, так что даже если куба нет, можно попробовать собрать его на ПК.
Ссылка на первую часть







IV. Оставшиеся боковые промежуточные кубики


Боковые промежуточные кубики у нас остались только в U2, D2 и D. Здесь нам помогут две комбинации: K9 и K10 и им симметричные. Заметьте, что одинаковые по цветам кубики имеют разное внутреннее устройство (я об этом уже писал, один из них «левый», другой — «правый» ), поэтому если вы хотите переместить такой кубик из D в D2 или U2, посмотрите, в какой из этих граней он будет ориентирован правильно. Заметьте, что K9 и K10 перемещают кубики так, что цвет, обозначенный как В переходит в С, а потом в левую А (см. рис. справа). Перед применением комбинации поворачивайте D как вам удобно — потом можно будет без проблем вернуть на место. Примерное указание по сборке — собирайте параллельно кубики в D и в D2 с U2 так, чтоб неправильно стоящих было везде примерно поровну. Единственная плохая ситуация, которая может возникнуть — в одном из слоёв U2 или D2 два смежных кубика стоят правильно, а два других нужно поменять местами. Для этого проделайте следующие операции (предполагаем что проблема возникла в D2, для U2 делается аналогично): Поставьте кубик так, чтобы оба кубика, которые нужно поменять местами стояли в левой грани (L) и примените K10. Далее поверните четыре верхних слоя по часовой стрелке (если смотреть сверху) и опять примените К10. Потом просто поверните D2 так, чтобы цвета на рёбрах куба совпали. Вот и всё! Результат — на картинке справа.
Поскольку сам я разбирался в этом алгоритме немало времени, снял видео этой комбинации

Кстати, алгоритм сборки на одном известном сайте предлагает для сборки боковых средних кубиков алгоритм, похожий на К9 и К10. Можете попробовать, но есть мнение, что он не работает. Дело в том, что может возникнуть вышеозначенная ситуация (в связи с которой я и снял видео) и алгоритм её устранения не будет работать для среднего горизонтального слоя, т.к. он содержит центральные кубики (дело в самом последнем повороте, который возвращает боковые средние кубики на место, но перемещает центры в другие грани).

V. Оставшиеся пять центральных квадратов


Здесь нам помогут комбинации K11, K12 и К13. Перед их использованием частенько придётся поворачивать L и F, а в конце возвращать на место в обратном порядке.
Комбинации можно воспринимать как перемещающие кубик А в левую грань, а кубик С в переднюю. То, что в левой грани меняется порядок кубиков — совершенно не важно, т.к. перед следующими комбинациями можно будет повернуть L и F как угодно (эти комбинации, в отличие от предыдущих, вообще не трогают остальные кубики, поэтому применять её можно из любого положения).Также здесь у нас впервые используется повороты U3 и U3'. Это поворот третьего слоя, если смотреть сверху (поворот U3 — это то же самое, что D3', и наоборот, U3' аналогично повороту D3). Помимо всего прочего, необязательно использовать все три комбинации. Достаточно лишь K12 и одной из оствшихся, т.к. К11 и К13 двигают один и тот же класс кубиков. Мне, например, удобнее было использовать К13, когда я только учился собирать куб. Сейчас же использую все (это немного ускоряет сборку и предотвращает некоторые ошибки, случающиеся в основном из-за необходимости поворачивать перед комбинацией и левую, и переднюю грани).

Заключение


Вот и собрали кубик. Используя данную схему можно собрать кубик не только размера 5х5х5. Для сборки кубика 2х2х2 нужно собрать только углы. Для сборки классического кубика 3х3х3 — собрать верхнюю грань, используя только алгоритмы сборки боковых средних и угловых кубиков, а далее всё в точности до конца п. III. Кубик 4х4х4 собрать тоже нетрудно — принципиальные различия между кубиками чётной и нечётной размерности лишь в том, что у «чётных» кубиков нет центральных и боковых средних кубиков, поэтому некоторые этапы сборки кубика можно пропустить (хоть у меня и нет кубика 4х4х4, я без труда собрал его в самописной программе-эмуляторе). В остальном собирается аналогично.
Что касается кубиков больших размеров, то у меня есть некоторые соображения по этому поводу. Одну грань скорее всего можно собрать без проблем на любом кубике. Также для сборки «рёберных частей» куба (п. IIV) вышеописанные алгоритмы без проблем применяются. Остаётся разобраться только с большими центральными квадратами. Скорее всего, там что-то похожее на раздел V. Через полтора месяца мне пришлют куб 7х7х7, и, если разберусь в нём, то добавлю сюда инструкцию.

Программа


Я уже упоминал о том, что написал программу, с помощью которой можно попробовать свои силы в сборке (при отсутствии реального куба). От множества аналогичных программ она не отличается, пожалуй, ничем, кроме экспериментального управления и потенциальной поддержки разных конструкций вроде «Пирамиды Рубика». Написана эта программа была давно, в конце 11-го класса к городской конференции по информатике. После этого демка была выложена здесь, но особой поддержки не получила, поэтому проект заброшен. Если это действительно что-то стоящее, можете сказать мне, скорее всего найдётся время этим заняться.
Скачать

Описание


Программа использует GAPI OpenGL и чистое WinAPI, поэтому есть большая вероятность, что под Wine-ом тоже будет работать. Запускаете CubeLauncher, вводите число от 1 до 10, жмёте enter, загружается нужный куб. Управляем мышью, если двигать с зажатой левой кнопкой, то поворачивается сам куб. Если навести мышью на одно из полупрозрачных колец и крутить скроллер, то поворачивается соответствующая грань (скроллер вперёд — поворот по направлению вращения кольца). Сразу извиняюсь за смотрящий в разные стороны курсор (видимо, переиграл в Worms 3D).
Для примера снял видео сборки кубика 2х2х2:

Помимо всего прочего, есть и пирамида (собирается элементарно, сделана просто для демонстрации возможностей)


Благодарности


Logonoff — за неоценимую помощь в оформлении картинок. Без него я бы быстро не научился рисовать в фотошопе и делать хоть какие-нибудь картинки.
Oxystin — за помощь в проверке алгоритма. Без него я бы не был уверен, что не допустил в алгоритме каких-либо неточностей и ошибок.
Александр Таран @Alex_MIPT
карма
106,5
рейтинг 0,0
Похожие публикации
Самое читаемое Разработка

Комментарии (19)

  • +2
    Бывают ещё такие кубики и даже додекаэдры
    • +3
      Или такие
      (Осторожно, жестокость!)

      P.S. У вас ссылки одинаковые, а по смыслу должны быть разные.
      • +2
        Извиняюсь, вот правильная ссылка.
        • 0
          Ещё такие www.youtube.com/watch?v=2M2QBfLbABU&#t=3m57s
          Список можно продолжать до бесконечности:)

          Кстати на dealextreme.com (не продакт-плейсмент) вполне нормальные кубики продают!
          Купил два: один зеркальный, а другой обычный и кстати обычный живет намного дольше фирменного Rubik's cube.

          Так что если кто захочет поиграться то за вполне приемлемую цену можно там купить!
  • +1
    Alex_MIPT отлично! Спасибо за вторую часть.
    Буду разбираться. О результатах непременно отпишусь.
  • +1
    Спасибо! Сделайте ссылку в статье на первую часть (а из первой — на вторую), а то неудобно =)
  • 0
    Как-то сложно у Вас. Очень много формул.
    Расскажу, как я научился собирать.
    1) Сначала на кубике 3*3*3 научился собирать 2 верхних слоя. Этого несложно достичь с помощью логики и пространственного воображения.
    2) Затем из журнала «Наука и жизнь» выбрал 4 самых простых, но достаточных формулы для сборки последнего слоя, и заучил их. Всё, 3*3*3 покорён.
    3) Потом увидел на youtube метод сборки Дмитрия Зайцева (ссылки уже давали в 1 части статьи). Преимущество метода в том, что в нём нет формул, всё основано на понимании процесса сборки.
    4) После этого 4*4*4, 5*5*5 и 7*7*7 я уже собрал без особых проблем и не заглядывая в пособия. Есть некоторые сложные моменты при сведении таких кубиков к 3*3*3, но их все можно решить простой логикой.
    • +1
      На самом деле автор просто формализовал алгоритм сборки Кубика Рубика. Трудно представить как иначе можно объяснить этот процесс без формул. Можно свести их (формулы, комбинации) к минимуму, опуская очевидные моменты, но тогда алгоритм будет не полный.
      Я собирал Кубик Рубика по первой части. На третий раз собрал сам, не подглядывая, так как логику усвоил на первых двух сборках.
  • –2
    Никогда не понимал зачем запускать нечто под костылями когда в Linux в стандартные наборы игр всегда и любого размера кубикрубики входили и убертипосапёры и прочая дребедень. =(
    • +1
      ключевое слово Linux
      • –2
        т.е. Вы считаете что если Linux, так костыли обязательны и нативный софт всегда уныл?
  • +1
    На самом деле автор просто формализовал алгоритм сборки Кубика Рубика. Трудно представить как иначе можно объяснить этот процесс без формул. Можно свести их (формулы, комбинации) к минимуму, опуская очевидные моменты, но тогда алгоритм будет не полный.
    Я собирал Кубик Рубика по первой части. На третий раз собрал сам, не подглядывая, так как логику усвоил на первых двух сборках.
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      без инструкции что-ли?
  • +1
    замечательная статья!
    к приведённым выше примерам (что ещё можно «охватить») добавлю:



    и прочие того же автора
  • 0
    Вот, впервые собрал 5×5 по инструкции, пользуясь своим симулятором. Ещё раз спасибо за подробные объяснения :-)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.