В середине рабочей недели бывает трудно.
Ты бегаешь к умывальнику и бросаешь в глаза холодную воду.
Кто-то уходит в тоску, запой или Хабр.
В этот непростой час хочу напомнить, что ты — подобен Богу.
Пишущий
<body>Новый мир</body>
или
s/я/мы/
— почти Бог, зодчий нового мира.
Хорошего, плохого, я не это обсуждаю.
Любое приложение — новый мир. Skype или Tetris, Xcode или нонейм из GooglePlay — новый мир, в который ты вдруг заходишь.
Ты покидаешь его или остаешься жить.
То же самое происходит с созданными тобой Вселенными.
В них действуют законы, которые придумал ты, вольно или невольно.
И как люди, твои миры рождаются и умирают.
К чему это я?
Про тетрис
Упомянутый всуе тетрис был когда-то популярен, но все мы его покинули. Стакан пуст и сух.
Вспомни, сколько лет назад ты играл в него? Но разве в юности ты не создавал собственный мир тетриса на С, Паскале или Javasript?
Всех завораживал процесс заполнения дырок кубиками.
По мере постижения мастерства, человек пресыщался. И получал удовольствие только в максимально сложном, адреналиновом режиме.
Выжить на максимальной скорости. На заполненном до краев стакане. Когда на спасение остается пол-секунды.
В
По скорости печатания игроки в тетрис догоняли профессиональных машинисток. 700 знаков в минуту.
Игровой процесс
Ладно, покончим с лирикой. Формализуем игровой процесс.
Отбрасывая условности, в тетрисе было всего 4 кнопки. (a)право, (b)лево, ©крутить по часовой, (d)крутить против часовой.
Понятно, что преобразования в тетрисе, например, a*c*c = с*a*c = c*c*a коммутативны.
То есть, результат не зависит от очередности нажатий на клавиши.
Именно в простых мирах верно равенство при перестановке (коммутативный закон)
a*b = b*a
Мир тетриса прост. Повторю. Вот почему его все бросили.
Реальный мир другой. Он сложный. Хотя в нем, как в тетрисе, происходят события A или B, изменяющие его.
W=A*W;
W=B*W;
Говорят, что древние греки события A и B называли аффиными преобразованиями. Не знаю, не уверен.
Так вот, для аффинных преобразований из большого мира A*B не равно B*A.
Пример? Пожалуйста.
A="Мы выпили вина и приятно провели время"
B="Я пришел домой к жене"
Согласитесь, что A*B совсем не то, что B*A.
Мало того, в результате перестановки двух преобразований полученный мир может отличаться катастрофически.
Так куда ушли игроки в тетрис? В трехмерный стакан, куда еще, ведь CS тогда еще не было.
И в трехмерном тетрисе A*B не равно B*A.
Немного истории про трехмерный мир
Если не ошибаюсь, трехмерный тетрис назывался BlockOut и был сделан в далеком 1990 году для 286 процессора.
В нем шесть кнопок для вращений в трех плоскостях и 8 кнопок для движения вдоль двух осей X и Y.
Игра вечная.
Я знаю 50-летних ребят, которые купили компьютеры, только для того, чтобы иногда вспомнить молодость и поиграть в BlockOut.
И играют они только в одном режиме. Стакан размером 3x3x18. Глубина по оси Z = 18. Сложный набор фигур.
Набравший в эту игру 200 000 очков считается гуру.
Его трехмерному
У самой игры есть сайт, рейтинги, залы славы, правила, система подсчета очков, наборы фигур и даже исходный код.
С появлением телефона мне захотелось иметь эту игру детства на мобильном устройстве.
Найденный в appStore вариант был скачен, использован и немедленно удален.
Стакан не той системы. Управление не для гуру. Управление ужасно.
Поймите, что на быстрых уровнях фигурка падает на дно за 1.1 секунду и человек должен успеть сделать 3-5 последовательных нажатий.
Причем последовательность нельзя менять! А ему предлагают мультитачем крутить фигуру в плоскости XY.
На один только мультитач-вращение уходит почти секунда.
Короче, надо придумывать свое.
Я рассмотрел четыре варианта и проверил 3 из них.
Продолжение и результат во второй части для гиков BL
Автор: PapaBubaDiop