Как стать автором
Обновить

Комментарии 11

При этом движение строки или столбца должно приводить в движение «связанные» с ним строки или столбцы. Все как во взрослом кубике — перемещаете одно — в движение вовлекаются и «соседи».


В своё время для курсовой знакомой делал 3д-рубик и могу сказать, что копировать реальность оказалось самым простым решением. Выбираем ось и направление и вращаем всё, что выше определённой отметки по этой оси на угол. После отпускания — выравниваем на кратный 90гр. Как определялась победа не помню, но примерно так-же, без какой либо привязки к цветам и чему либо.

Чтоб не проверять все перестановки вида


var Tnew = [
    [[5, 5, 5], [5, 5, 5], [5, 5, 5]], // оранжевый
    [[3, 3, 3], [3, 3, 3], [3, 3, 3]], // зеленый
    [[1, 1, 1], [1, 1, 1], [1, 1, 1]], // синий
    [[4, 4, 4], [4, 4, 4], [4, 4, 4]], // желтый
    [[2, 2, 2], [2, 2, 2], [2, 2, 2]], // белый
    [[6, 6, 6], [6, 6, 6], [6, 6, 6]]  // красный
]

можно сортировать Tnew по второму элементу второго элемента (центры сторон всегда на своих местах).

Еще хотел спросить про расширяемость: размерность "кубика" можно поменять, чтоб "собирать" 5х5, вместо 3х3?

спасибо за вопрос, коллега.
отвечаю: программу можно сделать расширяемой. Хоть и не без некоторых трудностей. Другими словами в настоящий момент нельзя просто задать некую переменную, обозначающую кол-во строк/столбцов на каждой грани, но к этому можно привести, если задаться такой целью. Какие то вещи там уже написаны с учетом такой возможности. Какие то надо изменять.

Одна из основных причин, почему данная цель не преследовалась сразу: разрешение плитки. Для iPhone 5/5s/SE это значение 58*58 точек (соотвественно, 29*29 в координатах экрана). Потому что мне надо было разместить 9*12 плиток на экране + некий «защитный интервал» с каждой стороны по горизонтали. По итогу даже в варианте 3*3 на 5/5s/SE выглядит уже мелковато и, я считаю, где то на грани комфортности. Более мелкая плитка (допустим, 4*4) привела бы к трудностям такого плана: надо было разместить 12*16 плиток. Берем физическое разрешение 5/5s/SE 640*1136 и видим, что 640/14 = 45.7 (можем округлить до 46), то есть 46*46 это физический размер в точках для 1 плитки (или 23*23 логический), делитель 14 — с учетом защитного интервала (экран вытянутый по вертикали, поэтому о вертикали тут не беспокоимся). Уже мелковато совсем. 5*5 дало бы еще более мелкую плитку.
1) 6 покупок — невероятная удача.
2) AdMob при 200 загрузках — не нужен (20 000 загрузок принесут 1 доллар в день)
3) Что за проблема с iOS<10? Реализация Вашей идеи не подразумевает рисков, на мой дилетантский взгляд.
в iOS 9.x некорректно работают некоторые функции в SpriteKit
в iOS 10 (и уже в iOS 11) они работают правильно.
C учетом статистических данных Apple — доля iOS 9 и младше достаточно мала и продолжает уменьшаться.
Кроме того, если бы я принял решение запрашивать версию iOS и потом в зависимости от нее вызывать метод из SK или его самодельный аналог. На данном этапе решил этого не делать. Это если кратко.

Сейчас решил установить симулятор iOS 9, чтобы еще раз посмотреть на то, о чем я говорю. Один и тот же код ведет себя по разному в iOS 9 и iOS 10
Пока с подсказками все находится на той же стадии прогулок и размышления. Те, кто знает, как собирать кубик, понимают, что от текущего состояния можно прийти к собранному совершенно разными путями.
Число Бога для кубика Рубика — 20. Проблемы для подсказки нет — просто для текущего состояния запускается решение и показывается следующий ход для кратчайшего пути.
коллега, я тоже про это думал…
есть пара «но»:

1) к сожалению, мой уровень математической подготовки не достаточен, чтобы получать эти самые 20 ходов из любой текущей комбинации. Это исправимо самообразованием. Но есть и второе «но»:

2) мне бы хотелось давать пользователю какие то осмысляемые им ходы. Другими словами, чтобы он понимал логику хода. Почему он сделан именно так. Сильно сомневаюсь, что ходы в соотвествии со стратегией «числа Бога» могут быть осмыслены на уровне бытовой логики.

Человеческий разум легко поймет послойную сборку. Она не оптимальна, но с точки зрения разума она более понятна и может быть не просто понята, но и ей можно научить.

Так ведь?
Учитывая, что «мыслить» послойной сборкой в 2D-плоскости — не самая тривиальная задачка и надо адаптироваться после 3D, то пользователь и сам должен владеть какими-то базовыми стратегиями и знать про Алгоритм Бога. А если не знает — чем не повод и возможность его научить?

Сейчас кубики Рубика продаются с сопровождающей инструкцией, где в картинках пошагово показана стратегия по сборке. Почему бы в игре не сделать нечто подобное?

Собираю кубик рубика offline минуты за 2 методом для начинающих(не более 10 алгоритмов) но ни 3d ни ваш собрать не могу, т.к. Алгоритмы хранятся только в мышечной памяти.

попробуйте, для начала из состояния «собран» на кубике «офлайн» какой нить простенький алгоритм и одновременно его же на Flat Cubik_e. Просто чтобы понять связь между ними.
Все должно работать совершенно одинаково.
С удовольствием наблюдаю, как отдельные пользователи в Гейм Центре упорно продвигаются вверх (по шагам сборки, так и по времени).

ПС: спасибо за комментарий
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории