-
Здравствуйте! Подкиньте, кто может, идею - как реализовать автоматическое собирание кубика Рубика. Желательно для Delphi и так, чтобы до меня дошло :o)
-
Не представляю как это сделать иначе чем методом перебора :) А вообще если делаешь игру, то лучше просто запомнить последовательность движений, которые привели куб до текущего состояния, а потом просто повторить обратно их чтобы собрать... если плеер крутил куб, то там можно проанализировать какие движения будут лишними, а какие нужно добавить.
-
> Kira © (21.01.06 18:59)
Возьми кубик Рубика. И Собирай его, пока не постигнешь всю силу алгоритма.
У меня было как-то так, я целый год бегал с ним. Мог за минуты собрать все стороны. (:
А вот недавно взялся опять - не получается. Забыл всё. Так и забросил не разобравшись. (:
-
algolist.manual.ru
-
> ArtemESC © (22.01.06 03:02) [3]
А ведь точно. (:
-
Всем, кто откликнулся, большое спасибо!
Но боюсь, что я неправильно выразился.
Мне необходимо РЕАЛИЗОВАТЬ автоматическую сборку кубика.
Как его собирать ручками, я знаю.
-
Я собираю кубик Рубика уже 25 лет.Нет ничего проще.2 слоя собираю без всяких алгоритмов, а для сборки третьего слоя существует около 300 алгоритмов,которые я выучил и собираю весь кубик в пределах около 40 ходов.Для запоминания алгоритмов составляю предложения по первым буквам моих алгоритмов.Молодым желаю творческих успехов-у них ещё есть время,чтобы овладеть сборкой кубика.Для начала необходимы статьи из журнала наука и жизнь 80-х годов прошлого века.
-
Меня заинтересовала цитата №6. Я тоже собираю кубик практически без
алгоритмов и давно отказался от обычной сборки по слоям. В среднем собираю за 45-55 ходов, а личный рекорд 35 ходов.
-
> практически без алгоритмов
Это как? И главное - что значит практически - так с алгоритмами или без? Рэндомом?
-
Я начинаю сборку кубика с вершин. Только на этом этапе применяю алгоритмы состоящие из 7-9 ходов. На это уходит от 7 до 21 хода. Дальнейшая сборка (20-40 ходов) алгоритмов не требует, если не считать за алгоритмы простейшие перемещения кубиков, используемые при построении на уже собранном кубике фигур.
-
> Владимир (08.09.06 19:31) [9]
А что же это такое, если не алгоритмы?
-
Думкин, мне интересно, ты сам кубик собираешь? Или грузишь от нечего делать?
-
> Владимир (11.09.06 18:25) [11]
Я собираю. Причем уже не помню тех алгоритмов что в журнале были более 20 лет назад. Собираю по ходу, придерживаясь определенных методов. Но считаю, что любое действие там - алгоритимзировано. И считаю, что и вы собираете по алгоритмам, а вовсе не по рэндому. Другое дело, что вы используя мелкие алгоритмы комбинируете их каждый раз в новый итоговый.
Если же вы покажете, что собираете рэндомом - я съем свою шляпу. Я не гружу - я интересуюсь.
-
Что касается задачки.
1. Если начальное состояние получено не из полной сборки верными перемещениями. то восе не обязательно кубик соберется. Также как и в игре 15. Поэтому положения в играх таких(да и в реале) получают из конечного путем правильных перемещений - тогда сборка осуществима точно.
2. Один алгоритм в этом случае есть точно - повторить те ходы наоборот, что и было использовано. А это не интересно.
3. Было бы забавно выстроить алгоритм реализующий минимум ходов в любой ситуации.
4. А так - использовать те что есть. Как и было заявлено, алгоритмов сборки - очень много. В том числе и простые перемещения кубиков.
-
Что такое "определенные методы"? Все очень мутно. Меня не интересуют
общие фразы. Это напоминает объявления в газетах:приглашаем непонятно кого на непонятную работу. За сколько поворотов граней собираете кубик?
И как вы его собираете? Я считаю, что если вы контролируете процесс сборки, знаете заранее,сколько ходов на это нужно, то это уже не алгоритмы, это уже от головы.
-
Владимир (13.09.06 21:22) [14]
то это уже не алгоритмы, это уже от головы
ничего себе. Хотелось бы узнать, что в таком случае алгоритм. Или под головой подразумевалась интуиция?
-
> Владимир (13.09.06 21:22) [14]
А какая разница за сколько я его собираю? если мне сейчас его дать - то минимум полчаса надо будет. И что? Очем это говорит?
А вот определнение алгоритма от вас - не помешало бы.
-
> Владимир (13.09.06 21:22) [14]
Вот вы без общих фраз и выложите свои недоалгоритмы. Пипец.
-
> Kira © (21.01.06 18:59)
А как собирать прораммно можно по первому приближению так:
1. Для описания состояния кубика можно использовать либо строку из 54 элементов, либо матрицу 6*9, или диагональные матрицы 54*54. :) Договориться какое место на кубике на каом месте в этих структурах.
2. Описать правильные элементарные переходы - то есть пары состояний, когда из первого состояния путем поворота грани переходим во второе. Из них можно получить простые переходы, которыми собственно и оперируют собиральщики.
3. Правильный переход - конечная линейно упорядоченая комбинация элементарных переходжов, где второе состояние каждого(кроме последнего) является первым у последующего.
4. Правильное конечное состояние - это собранный кубик.
5. Правильное состояние - если существует правильный переход связывающий его и правильное конечное.
Задача: Дано состояние, выяснить правильное оно или нет и в случае правильности предъявить правильный переход.
Построить конечный алгоритм по решению такой задачи.
Простейшие алгоритмы - это стандартная сборка - описана на алголисте, а также можно воспользоваться огромной базой недоалгоритмов от Владимира. :)
Более сложная задача - найти кратчайший правильный переход.
И все. задача поставлена. Решайте.
> Подкиньте, кто может, идею
Идея подкинута. Можно и не 54 эелемента пользовать - но так понятнее.
-
Кстати, в случае диаг.матриц - переходы можно описывать разреженными матрицами. Сам переход - умножение на такую матрицу - переведт одно состояние в другое.