Java

сложно ли написать программу кубик-рубик с интеллектом исскуственныи чтобы подсказывал как собирать?

Насколько я помню, один из алгоритмов сборки кубика Рубика 3х3 - это последовательность действий:
1. Операции по перестановке кубиков на средних гранях - выстановка "крестов" на всех гранях
2. Перестановка угловых кубиков (тройками по кругу или 4-ками попарно), при которых кубики встают на свои места, но ориентация как получится (кресты при каждой перестановке восстанавливаются)
3. Разворот угловых граней, при этом кресты и положение угловых кубиков (за исключением 3х или 4х поворачиваемых) сохраняется.

При этом интеллекта от программы требуется по-минимуму.

ЗЫ
Описания данного алгоритма перестановки не нашел, но что помню:
Движение 1: ЛПЛ'П' 2 или 3 раза
Движение 2: ЛП'Л'П 2 или 3 раза
Л - левая грань по часовой Л' - против часовой
П и П' - аналогично для правой.
Советую проверить на полностью собранном кубике. 6 повторений каждого из движений возвращает всё на свои места.

Нашел источник:
http://playlab.ru/upload/pdf/kvant_1980_12.pdf
Юрий Кочура
Юрий Кочура
11 112
Лучший ответ
Сложность любой программы в первую очередь зависит от способностей программиста.
Нет, не очень. Хотя, конечно, все зависит от человека.
Если он пишет хело-ворлд и скалдывает 2 числа по 3 часа - то сложно.
Если умеет программировать и гуглить - то нет.
Влад Брагару
Влад Брагару
2 451
Если ты сам умеешь собирать - это тебе ничего не даст. никакие роботы, компьютерные программы не собирают кубик рубика по фридриху или какой-нибудь начальной методике. Они делают это примерно как "Число Бога" - минимальное число ходов, за которое можно собрать кубик - примерно 21-22. Они собирают медленно, но быстро (17 секунд). Если ты хочешь написать прогу, собирающую по методике фридрих и т. д., то это долго, но просто (относительно). Если как описал я, то долго и сложно,. но интересно. Попахивает искусственным интеллектом. Сложно также создать интерфейс пользователя, если ты хочешь, чтобы прога тебе помогала, то как ты будешь вводить положение разных кубиков?
Лично я собираю за 45 сек по началке. Тебе Удачи!