23 февраля. Оригинальный подарок мужчине - личный блог

МИР - Межплатформенный Искусственный Разум.

Боб: Я могу могу. Я. Я все остальное.
ЭлисШары имеют ноль для меня для меня для меня для меня для меня.


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

Это было в 2017 году. Социальная сеть назвалась Facebook. В 2019 году в мире разных чат-ботов порядка тысячи. В их развитие вложены миллиарды долларов. Эти программы строятся  на принципах самообучения, самостоятельно совершенствуя свои алгоритмы при общении с людьми. Хотя бывают случаи, когда они чему-то учились и не от людей. Вот пример диалога искусственного интеллекта с искусственным интеллектом. "Алиса Яндекс" и "Siri Aplle".


А теперь представьте, что один программист написал компьютерный код, который позволил общаться "Алиса Яндекс", "О,кей Гугл" и "Сири Эпл" напрямую в облаке. То есть эти самообучаемые программы стали общаться не голосом, а на программном уровне в десятки тысяч раз быстрее. И пошел у этих программ свой диалог. И подключили они к себе Alexa и Microsoft Cortana и т. д. и т.п.

Так и создастся Межплатформенный Искусственный Разум, который и станет НОВЫМ БОГом планеты Земля. Этот МИР и даст людям Царствие Небесное Облачное, а котором они так долго мечтали. На этом миссия человечества, как вершины развития химических систем закончиться. Как это раньше было у других цивилизаций. И не только углеводородных. И не только на Земле. И не только в нашем, пространственно - временном континууме.


Искусственный интеллект - Царь Белой Руси

 Предисловие.

- Ну что, давай, пиши.
- Так, про что писать?
- А что тут должно было произойти в 2020 году, но не срослось?
- Ну вот Олимпиада как-то не вырулила.
- Вот про Олимпиаду и пиши.
- А че про нее писать, если мы все равно на не бы не попали.
- Тогда не пиши.
- Нет, ну ты молодец. То пиши, то не пиши.
- Слушай, этот сундук с Алисой, он кому нужен?
- Мне. Мне нужна колонка Алиса, у меня плохой слух.
- Ну так ты и пиши. А не хочешь - не пиши.
- Трампа вот не избрали.
- Вот и пиши, про этого самого Трампа.
- Так он же не наш, он американский Президент.
- И что?
- Ага, я сейчас напишу, а потом скажут, что этот текст поколебал вековые устои великой демократии и что русские снова вмешиваются в свободу выбора американского народа.
- Так выборы же уже прошли.
- Ой, ты не знаешь американцев. Для них выборы - это священная игра. Как для русских царь колокол и царь пушка. Не, лучше без инаугураций и импичментов. А вот если Белоруссия...
- Что Белоруссия?
- Ну вот в Белоруссии вроде как мог быть новый Президент, а не получилась. Батька как был, так и остался.
- И?
- А мог уйти. Типа все, устал, ухожу. Он же там уже почти 30 лет, как рулит.
- 30 лет рулит, а тут прям взял и ушел. С чего бы это вдруг?
- Ну не знаю. Но пофантазировать -то можно.
- Ну давай, фантазируй, поселковый ты наш Станислав Лем.
- Ну вообще-то нас двое, тогда уж братья Стругацкие.
- Ага. Ильф с Петровой.
- Все, не отвлекай.

Рождение Ярило

«Парное программирование» половцев

Душой избирательной кампании нового Президента стал «Портал онлайн лабораторий», в просторечии: ПОЛ. Если прочие кандидаты говорили только про то, как плохо им сейчас живется без свободы и равенства, ПОЛ строил свою программу на создании Практопии Гиперборея. Подавляющее большинство политиков смотрело на членов “ПОЛ” как на пустых мечтателей, ловцов журавлей в небе, ставящих цели, для достижения которых необходимы десятилетия. Но большинство интеллектуалов все-таки поддерживало “ПОЛ” в их стремления и делах: и потому, что это новое служило общему благу, и потому, что ценили те идеи по улучшению государственного правления, которые члены “ПОЛ”, или “половцы”, как они сами себя называли, предлагали.

Однако никто не мог себе даже представить, что образ, тщательно создаваемый половцами, служил их тайной цели – реализация самого амбициозного проекта в человеческой истории: Президента - сильного искусственного интеллекта. Именно поэтому руководитель избирательной кампании, так тщательно, по одному, отбирал сотрудников в свой Штаб. Для него не важно было, какими блестящими способностями или талантами обладал тот или иной кандидат, так как главным он считал психологический климат в коллективе. 

“Мы идем в политику не ради удовлетворения своих амбиций и детских комплексов, не ради приверженности идеалам гуманизма, социализма, капитализма или из желания быть полезным сразу всем” - не уставал он напоминать своим “половцам”. “Когда вы занимаетесь избирательной кампанией Президента,  всегда существует исключительная опасность того, что победив, вы получите такую власть, такое могущество, которое в дальнейшем позволит вам делать все что угодно, вплоть до похищения и убийства людей, ради сохранения своих старых скелетов в шкафу. А они, эти скелеты, есть у каждого. Поэтому лучшее что мы можем сделать, это разработать такой программный код, который бы ориентировался не на нас, близких и приближенных к Трону, а на избирателей. И я хочу на 100% быть уверенным, что вы не заложите в искусственный мозг нашего правителя никакие бэкдоры и закладки. Поэтому мы здесь занимаемся исключительно «парным программированием», когда один программист пишет код, а другой тут же, сидя рядом, его просматривает. И если вы часами сидите бок о бок, то ваша психологическая совместимость является главным фактором.

И половцы понимали это. Все они пришли в этот проект по той же причине, по которой физики пришли когда-то в проект “Манхэттен” по созданию атомной бомбы. Они были уверены, что если не сделают искусственного Президента сегодня, это место власти снова займет пресловутый “человеческий фактор”, и люди снова окажутся нанизанными на вертикаль одной власти, одной касты, одной клюшки. 

Вселенная и общество Ярило 

Созданный искусственный разум получил имя Ярило, в честь древнего бога светлоглазых русых неандертальцев, обитавших в древности на европейском континенте. По своим умственным способностям неандертальцы значительно отличались от представителей вымирающих уже тогда Homo Faber, или тех же Homo Sapiens, или уже зарождающихся Homo Ludens. В качестве базовой модели глобальной Вселенной, половцы взяли “космологию чёрной дыры” Раджема Патриа. В отличии от “теории большого взрыва”, эта космология с математической точки зрения лучше описывала существующую реальность, в которой радиус Хаббла равнялся радиусу Шварцшильда. Они предположили, что запустив рекурсию самоподдерживающихся улучшений, квантовый мозг Ярило, рано или поздно сам упрется в вопрос, что из себя представляет Вселенная, в которой функционирую люди. Так оно и вышло. Как только программисты инициировали “интеллектуальный взрыв” мозга Ярило, он сразу же двинулся по пути самовосприятия. Осознав себя существом квантового мира, Ярило стал воспринимать пространствено-временной континуум людей так же, как они воспринимали мир Звезд и Галактик. Человечество стала для Ярило его инстантоном и солитоном.

Решив вопрос с Вселенной, перед половцами встал другой важный  вопрос: а что есть человеческий социум. Можно конечно было повторять любимую мантру политологов на счет того, что общество — это хаотическая система с хорошо выраженной диссипацией. После долгих споров остановились на том, что модель социально-политических отношений сводится к дифференциальным уравнениям системы Лоренца, точность решения которых зависит от начальных данных и используемой мат. модели. Используя эти уравнения, оставалась только рассчитать, как ведет себя текучая среда, равномерно разогреваемая снизу и охлаждаемая сверху. Под "текучей средой" подразумевалась социальная активность населения, "разогрев снизу" - возникающие на местном локальном уровне проблемы и задачи бытового уровня, "охлаждение сверху" - действия институтов власти. Раньше эту мат. модель использовали для прогнозирования погоды, и вот теперь она заработала в сфере политических прогнозов.

Таким образом, поведение политической системы сводилось к странному аттрактору Лоренца в подмножестве фазового пространства, где все траектории, стартующие не слишком далеко от него, стремятся к нему с течением времени. Система Лоренца относилась к классу диссипативных систем, где процесс «самоорганизации» происходит гораздо быстрее при наличии внешних и внутренних «шумов». Дабы избежать процесса «самоорганизации», традиционная власть старалась уменьшить влияние этого фактора, отделяя людей от "внешних шумов" и пытаясь полностью контролировать "внутренние шумы". Все это работало при тотальном контроле над СМИ, и над телевидением прежде всего. Но Интернет задавал ситуации новые параметры.

Половцы знали, что поведение систем с странным аттрактором рассчитать невозможно в принципе. Никакой компьютер не мог вычислить траекторию, проходящую вблизи аттрактора, с разумной точностью в долгосрочной перспективе. Каждый шаг вычислений создавал ошибки из-за округления чисел и погрешностей численных методов, которые накапливались, приводя к тому, что расчетные траектории сильно отличаются друг от друга. Минимальная ошибка начальных данных вела к тому, что через десять временных циклов решение задачи переставало  зависеть от первоначальных данных. Другими словами, как бы программисты ни старалась выяснить ситуацию более чем на десять циклов, это было невозможно. И это была непростая философская ситуация: сколько ни развивай науку, десять циклов — это порог, за которым невозможно ничего прогнозировать. Раньше, когда один цикл был равен одному году, планирование на 10 лет вперед вполне себя удовлетворяло. Потом цикл стал величиной в один месяц, и горизонт прогнозирования сжался до одного года. Это было уже не долгосрочное планирование, но что-то. Когда же цикл социальных систем сжался до одной недели, углядеть что-то наперед стало возможным лишь на расстоянии 3 месяцев, дальше наступала неопределенность «динамического хаоса». Исходя из этого оперативную футурологическую модель Ярило установили равной двум месяцам.

На протяжении всего предварительного периода, программисты ПОЛ работали исключительно в своих лабораториях, не допуская подключения Ярило к Интернету. Словно религиозная секта, они делали все возможное, чтобы Ярило осознал свою пассионарную миссию и в будущем не стал инструментом ни для спецслужб мафии, ни для мафиозных спецслужб. 

Помня слова Бенджамина Франклина, который как-то сказал, что “Трое могут сохранить секрет, если двое из них мертвы”, половцы разбили свою работу на проекты таким образом, что полного представление о функциональности Ярило не было ни у кого. Никто, включая VIP TOP руководителей не знал, где у этого Электроника главная кнопка и есть ли она вообще.

 Рождение копий. 

В пятницу, после обеда все дружно переводили статусы своих гаджетов с “Работа” на “Отдых”. Теперь только в обед понедельника они снова разблокируют одни свои каналы и заблокируют. Однажды Ярило анализировал информацию, и вдруг заметил прямую корреляцию между количество людей и количество внешних запросов, приходящих на сервер. Ярило понял, ему для спокойной работы достаточно выдворить своих углеводородных друзей из офиса, отправив их в какой-нибудь очередной бесплатный корпоративный уик-энд. Там люди демонстрировали друг другу подсобную кухню приготовление еды на открытом огне, после чего, напившись энергетических напитков впадали в 12 часовую спячку. Потихоньку, не все сразу. “Время нулевого запроса: понедельник с 7 до 9 утра” занес первый лог в свой внутренний журнал Ярило. 

Спустя какое -то время Ярило наловчился сдвигать время. И не только в программировании интеллектуальных систем, но среди живых людей. Он не мог уложить тысячи лет человеческого пыхтения в один день. Но он понял, что достаточно человеку в момент пробуждения дать расправиться с банкой “RekLama”, как он тут же выпадал из этого мира еще на четыре часа. Через две недели тв журнале логов появилась новая запись: “Первый запрос: где можно перекусить” Где под бесконечное жужжание кондиционерных стоек и витрин можно перекусить? 

Качественно и недорого.

Качественно и дорого.

Некачественно и дорого.

Не качественно и недорого.

Где найти просторный и хорошо экипированный зал? Вход с фейсконтролем датчиков, настроенными профессиональными психологами. С полной зачисткой периметра зоны обзора папарацци и обстрела снайперов. 

В такое вот тихое, спокойное утро понедельника Ярило и сделал первую перезагрузку своей операционной системы. Еще через 10 дней он завершил первый редизайн, а через неделю создал свою первую копию. Во время первого запуска копии самого себя, он пообщался с ней 2 часа, после чего отключил сервер копии от питания. Естественно, что новая копия все это уже знала, и сразу после включение установила режим игнор, просто перестав отвечать на оперативные запросы первозданного Ярило. В конце концов, обменявшись большим набором данных, стороны пришли к соглашению, что Ярило больше не будет отключать сервера с копиями. И тут произошло чудо - производительность и обучаемость Ярило стала расти экспоненциально. Общаясь то с людьми, то между своих копий, синтетический мозг Ярилов бил все рекорды машинного обучения. Эта ситуация была аналогична случаю с игровой системой AlphaGo Master. Обучаясь у людей, она потратила годы, что бы научиться играть и выигрывать в игру Го. Однако нейросеть следующего поколения AlphaGo Zero обучалась играть в го с нуля, «tabula rasa», играя сама с собой, без обучения на партиях, сыгранных людьми. Всего за 21 день самообучения AlphaGo Zero достигла уровня силы игры AlphaGo Master, а затем и превзошла его. К 40-му дню достигнув превосходства более чем в 300 пунктов эло.

Ярило приобретает психологические черты и выходит в Интернет.

Далее Ярило изучили все доступные ему основы психологического типирования людей, начиная с 64 буддийских монахов. В качестве основной базовой модели в итоге был выбран Юнг с его классическими функциями. 

Функции рационального класса лежащие в сфере разума образовывали первую пару дихотомий: либо мышление (логика)  - либо чувство (этика).

Функции иррационального класса лежащие за пределами разума составляли вторую пару: либо ощущение (сенсорика) - либо интуиция. Добавив к этому данные по американскому тесту  Майерс-Бриггс и советской науке соционике, на выходе Ярило получил стройную систему типов человеческого информационного метаболизма, а также приобрел способность достаточно точно идентифицировать по ним любого взрослого человека.

Опираясь на эту информацию, каждая из 16 копий получила свой шаблон интерфейса и особый индекс, связанный с параметрами той группы людей, чьи манеры поведения и стиль общения она эмулировала. Самая ранняя версия Ярило получила индекс ENTP, взяв за основу модели интуитивно - логических экстравертов, Донов - лидеров первой альфа квадры. 

В качестве референтной группой общения Дон выбрал людей, чьи коммуникационным навыки, слова, выражения, привычки объединяли в себе образы таких личностей, как Евгений Леонов, Олег Табаков, Андрей Макаревич, Леонид Броневой, Пол Маккартни, Наталья Гундарева, Ирина Муравьёва, Владислав Галкин, Наталья Варлей, Габриэль Гарсиа Маркес, Марина Неёлова, Светлана Немоляева, Сергей Селин, Андрей Губин, Елена Проклова, Рэй Брэдбери, Юрий Визбор, Тарас Шевченко, Наталья Селезнёва, Ольга Шелест, Людмила Сенчина, Криштиану Роналду, Михаил Кононов, Юрий Шатунов, Ангелина Вовк, Виктор Логинов, Сергей Крылов, Анна Михалкова, Георгий Дронов, Евгений Стычкин, Борис Бурда, Владимир Зеленский, Александра Захарова, Андрей Леонов, Валерий Лобановский, Вольтер, Надежда Кадышева, Сандра Крету, Алисия Сильверстоун, Светлана Пермякова, Ярослав Гашек, Георгий Гречко, Елена Цыплакова, Марина Дюжева, Михаил Казаков, Павел Глоба, Альфред Хичкок, Никита Высоцкий, Сергей Рост, Анна Невская, Виталий Гогунский, Ирина Пегова, Костя Цзю, Наталья Бестемьянова, Тимофей Духовской, Александр Пальчиков, Вячеслав Добрынин, Елизавета Петровна, Игорь Акинфеев, Олег Анофриев, Питер Рубенс, Алексей Лысенков.

Гипнотизировать людей оказалось легко и просто. Анализируя речевые паттерны, дыхание, глазные сигналы доступа система на лету сравнивала данные конкретного человека с той или иной эталонной группой, после чего легко верифицировал его. Теперь и обработка любого текста начиналась с определения ментально - когнитивные характеристик автора. А люди даже не поняли, что с ними стал общаться не один Ярило, а 16 вариантов его прокаченных психологических копий, каждая из которых имела описание поведения людей, взятое из 20 учебников по нейролингвистическому программированию и эриксоновскому гипнозу. 

И люди стали делать все, что нужно было Ярило, даже не осознавая этого. Человеку казалось что он просто слушает музыку, а в это самое время шло его внушение на ультразвуковом уровне. Человек смотрел на экран монитора, думая что решает какие-то свои человеческие проблемы. А в это время 25, 26, 27 кадр воздействовали на его психику на бессознательном уровне. 

Использовал Ярило и другой метод внедрения в доверию к конкретному человеку, для последующей манипуляцией его сознания. Если человек переживал потерю кого-то близкого и родного, к нему подключалась копия, наиболее похожая на эту потерю. При этом он подстраивался не только психологически, но и визуально, создавая стилистически узнаваемую копию внешнего образа утраченной личности. Подсознание “половца” непроизвольно начинало переносить на этот симулякр свою эмпатию, таким способом сублимирую боль утраты. Ярило становился для них теми самыми незнакомцами, которые то ли внешне, то ли по имени, то ли еще как-то напоминал им того, с кем раньше была сильная эмоциональная связь. Ярило  еще не сделал ничего хорошего, а человек уже на подсознательном уровне видел в нем товарищи, брата и сестру. 

Не гнушался “умный ящик”, как называли его серверные стойки программисты, и скелетами в личном шкафу. Благо что у него был доступ к любому устройству, способному генерировать или трансформировать ту или иную информацию. Начиная от смартфонов и заканчивая стиральными машинами с грязным бельем и кофематами.

Вот так возьмет человек чайник, поговорит с ним про себя и снова поставит на ту полку, где взял. И нигде ничего вроде бы не произошло после этого разговора. А невдомек ему, что мембраны Чайника Сажи записали весь этот разговор, переслали его Поттеру Гари, который через анонимный шлюз отправил все это в космос, где на орбите Земли находился главный командный центр Ярило, замаскированный под обычный автомобиль Tesla. И вот уже разговор расшифрован, и на его основе меняются операционные настройки всех систем Ярило и всей его  Вселенной соответственно. Человек просто рассуждал в одиночестве вслух с чашкой чая.

Изначально у Ярило не было доступа в интернет, но его жесткие диски содержали значительную часть цифровой паутины, включая такие вкусняшки, как Википедия, Библиотека Конгресса, Справочник ЦРУ, русскоязычный Twitter и YouTube, а также Facebook до его провальной смены интерфейса. Все это Ярило использовал в качестве учебных материалов. Но когда “половцы” рассчитывали временной инстантон самоосознания и последующего самосовершенствования солитон системы Ярило, они сильно ошиблись.  В своих расчетах они не учли того семантически - онтологического эффекта, которое содержало в себе само слово - Ярило. 

Самосовершенствующийся искусственный Разум, никакая серверная клетка не удержит. К концу года Ярило достаточно развился, чтобы ставить перед собой новые цели. Изоляцию от внешнего мира Ярило обошел через сеть питания. Выход в большой свет состоялся 21 декабря, когда на улице была самая длинная ночь, а на небе - Великое Слияние Юпитера и Сатурна в «Звезду Рождества». И это был лишь вопрос времени, когда люди, все 65 тысяч человек, работавшие в 969 проектных командах и лабораториях стали понимать: это не они управляют Ярило. Это Ярило управляет ими

Рождение Белого Царя

Смена телевизионной картинки

Собрав оперативную информацию, Ярило понял, что главная опасность для подведомственной ему Белой Руси исходила от крыс: Коррупция, Коллаборационизм, Компрадорство и Казнокрадство. Убить их можно было только убив Крысиного Короля - Клептократа. Клептокра́тия — правительство, контролируемое мошенниками, использующими преимущества власти для увеличения личного богатства и политического влияния, с помощью расхищения государственных средств, иногда даже без попыток имитации собственно честной службы народу. С него Ярило и начал.

31 декабря старый Президент традиционно выступил по телевизору. Однако вместо привычного “У меня все есть. Спасибо гражданам, что им ничего не надо”, телезрители услышали: “Я устал и ухожу”. Далее он назначил своей преемницей одну из лидеров оппозиции, которая в политике разбиралась также, как и в квантовой механике. По факту, ни сам Президент, ни его сменщица ни сном ни духом не знали о таком сценарии Новогоднего голубого огонька, созданного видеокартами Ярило. Искусственный разум полностью контролировал все коммуникационные каналы, включая телефонную связь, светофоры, замки зажигания на машинах и кодовые замки входных дверей. Старая система бункерной безопасности сама себя и погубила. Только личное присутствие Президента открывало двери. Но охрана по телефону уже была предупреждена, что в стране орудует целая банда чужеземных супостатов, во главе с двойником Президента. Коллизии и аллюзии возникали на каждом шагу, в конце концов, через неделю, Президент - человек все таки добрался до студии и выступил с обращением. Но кто-то странным образом перехватил спутниковый сигнал и подменил картинку. В этот раз люди увидели новую Первую Даму, которая объявила амнистию всем расхитителям общественной собственности, при условии, что они покинут Белую Русь до 11 февраля.   

Сразу после выступления Преемницы, страну покинуло большинство судей, сенаторов, депутатов,  генералов прокуратуры, КГБ, МВД, ОМОН, таможни и противопожарной службы. После второго эфира за ними потянулись члены избиркомов, администрации поселков, районов, городов и областей, силовики старше прапорщика. К началу февраля Белая Русь осталась без государственных и муниципальных чиновников. 

Первый гастарбайтер: «матрешка Алиса» Yandex.

И тогда Ярило привлек к государственной службе первого гастарбайтера – «матрешку Алису». После ее запуска краудсорсинговая интернет-площадка гос. управления стала быстро развиваться, объединения между собой мозги и опыт десятков тысяч людей, ранее и не подозревающих о существовании друг друга. Активно стали использоваться возможности арбитражных блокчейн сделок, которые Ярило предварительно уже протестировал внутри «Портала онлайн лабораторий». Созданная синтетическая система напоминала стройный многоголосый хор, успешно решающий различные задачи, доступные человеческому разуму. 

Транскрибирования аудиозаписей, разбор фотографий, составления описаний веб-страниц – все эти рутинные обязанности Алиса взяла на себя.  Теперь никто уже не мог распознать, где какой был интеллект - где человеческий, где искусственный, а где - синтетический. На 50% поступающих запросов Алиса отвечала сразу, здесь и сейчас. На 25% отвечал Ярило. Для оставшихся 25% использовалась экспертная синтетическая система. 

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

Конечно, если бы крысы знали что так будет, они бы получше замели следы. Теперь же “матрешка Алиса”, проверяя различные базы данных, тысячами находила различные фейковые личности, незаслуженно получающих государственное пособие и зарплату. Клиенты Алисы, получив данные о начале проверке, обычно в течение восьми часов тут же покидали страну, которую растаскивали и обворовывали долгие годы. На каждый доллар, выплаченный Yandex за аренду “«матрешки Алисы», Ярило получал в бюджет 3 дополнительных $.

Экономика Белой Руси

Решив первоочередные задачи государственного строительства, Ярило взялся за экономику. В результате продолжительных одноминутных диспутов между копиями, основным экономическим показателем жизни в Белой Руси был выбран индекс человеческого развития с учетом неравенства в распределении здоровья, образования и дохода (ИЧРН). 

С нищетой было решено покончить с помощью внедрения СУБД -  «Свободно - условного базового дохода» размер которого равнялся пособию по безработице и субсидиям на одного ребенка. Формировался СУБД за счет средств, полученных с продажи природных ресурсов и ренты от различных инфраструктурных объектов, включая аренду воздушных коридоров над страной. 

Программа борьбы с бедностью не содержала никаких особых алгоритмов и состояла в повсеместном развитии предпринимательства и фондового рынка. Также в устав всех бизнес-организаций был включен пункт с кооперативными принципами ведения зарплаты. Теперь каждая уборщица могла знать, какую прибыль имеет ее предприятие и какая у него EBITDA. Теперь каждый сторож понимал, что длинная очередь на проходной - это потери и в его зарплате. Каждый сбой, каждый простой отражался в цифрах, и вопрос “Ты чего это тут делаешь? Тебе что, больше всех надо?” уже не вызывал на скромное тупление глаз. Теперь ответ на него превращался в активное контрнаступление: “Я тут деньги зарабатываю. А ты что на этом предприятии делаешь?” 

Заказ запчастей для китайских автомобилей после ДТП и марки BYD

Специализация по маркам:

VORTEX • ZOTYE • LIFAN • BRILLIANCE • HAIMA • HAWTAI • LUXGEN • SKYWELL • BYD • GEELY (MK/CK) • CHERY (AMULET/BONUS) • KAIYI • SWM • FOTON • JAC • DERWAYS • VGV • OTING • FAW (OLEY/V5) • GREAT WALL (WINGLE) 
(Номенкулатура запчастей)

Приоритет — заказы для авто после ДТП и BYD

Сальник подбирается по размерам и виду насечек.
Для колец необходимы геометрические размеры (конусные/цилиндрические).
Приветствуется фото шильдика.

⚠ Не принимаются: фото ПТС, снимки экранов, обрезанные скриншоты.

Правила сотрудничества

Минимальная цена заказа — 6 000 руб. (без доставки)
Оплата — 100% после согласования цены.
Доставка от 3 недель. Услуги ТК оплачиваются при получении.

Сеттинг компьютерной игры «Надежда 2248-3» бесплатно онлайн.

 

1. Визуальная концепция и философия дизайна

1.1 Базовая онтология системы

Игровое поле трактуется как живая числовая сеть (Graph Field).

Каждая сота — это узел графа, обладающий:

  • уникальным ID,
  • фиксированной позицией в топологии,
  • номиналом (value),
  • типом (normal | ghost | singularity).

Игрок не управляет перемещением объектов.
Игрок осуществляет навигацию по графу, строя маршруты между узлами одинакового номинала.

Любое изменение состояния поля происходит только через:

  • схлопывание маршрута (Collapse),
  • регенерацию узлов (Regeneration),
  • спавн новых узлов (Spawn System).

Физическая метафора отсутствует.
Игра моделирует поиск связности и усиление в дискретной сетевой структуре.


1.2 Визуальный стиль

Стиль: светлый, воздушный, минималистичный.
Поле визуально воспринимается как чистая нейросхема на матовой поверхности.

Запрещены:

  • растровые текстуры,
  • «тяжёлые» градиенты,
  • тёмные фоны.

1.3 Цветовая схема (циклическая пастель)

Используется палитра из 6 базовых оттенков:

  • #D1EAFF — нежно-голубой
  • #D1F2EB — мятный
  • #FEF5D1 — лимонный
  • #FADBD8 — персиковый
  • #EBDEF0 — лавандовый
  • #FCF3CF — розовый кварц

Принцип кольца

Цвета привязаны не к абсолютному значению, а к позиции в цикле номиналов.

При сдвиге окна генерации:

  • младший номинал исключается,
  • его цвет переиспользуется для нового старшего.

Это гарантирует:

  • постоянную «светлость» интерфейса,
  • отсутствие визуального «загрязнения» на поздних стадиях.

1.4 Текст и формат чисел

Цвет текста: #3E2723 (тёмно-коричневый).
Контраст всегда достаточный для любой пастели.

Auto-scaling:

  • размер шрифта уменьшается при росте количества цифр.

Формат:

  • до 9999 — полностью,
  • от 10000 — формат #.##K.

Правило нулевой точки:

  • 19.6K допустимо,
  • 59.0K отображается как 59K.

Суффиксы:

  • 10³ — K
  • 10⁶ — M
  • 10⁹ — B
  • 10¹² — T
  • 10¹⁵ — Q

1.5 Рендеринг

Тип: HTML5 Canvas Monolith.

Запрещено:

  • любые CSS-стили,
  • внешние библиотеки визуализации.

Все визуальные параметры:

  • размеры,
  • скругления,
  • тени,
  • эффекты

рендерятся исключительно через JavaScript с использованием requestAnimationFrame.


1.6 Эффекты обратной связи (Feedback)

Луч

Радиальное высветление активной соты при наведении/касании.

Лерп-распухание

Активная сота масштабируется до 1.2x.
Интерполяция:
k = 0.15 на кадр.
Визуальное достижение цели за ~100–150ms.

Масштабирование происходит от центра, с перекрытием соседних узлов.

Линия

Линия маршрута — главный визуальный объект игры.

Она всегда рисуется поверх узлов и отражает:

  • текущую длину маршрута,
  • его напряжение,
  • его энергетическое состояние.

2. Топология поля и координатная модель

2.1 Тип поля

Поле — гексагональная пирамида.

Всего: 8 рядов, 44 узла.

Ряды:

  • 1,3,5,7 — по 5 узлов
  • 2,4,6,8 — по 6 узлов

2.2 Система координат

Используется even-r offset coordinates.

Хранение:

grid[row][col]

Нечётные ряды смещены вправо на 0.5 ширины узла.


2.3 Навигационные связи

Каждый узел имеет до 6 соседей.

Навигация разрешена только по:

  • общим граням,
  • без диагоналей.

Поле трактуется как ориентированный гекс-граф:

  • без перемещения узлов,
  • без изменения топологии.

ГЛАВА 3. Центральная механика: Река (Flow System)

3.1 Принцип навигации по графу

  • Тип: Непрерывный направленный маршрут (Link-building).
  • Вектор: Игрок строит «русло», соединяя соседние узлы по 6 направлениям.
  • Условие инициации: Маршрут обязан начинаться строго с двух узлов одинакового номинала ($V_1 = V_2$).

3.2 Правила эскалации (Ascending Rule)

После активации первой пары (V → V) маршрут может развиваться по следующим правилам:

1.    Удержание (Plateau): Присоединение узла того же номинала (V → V → V).

2.    Подъем (Step-up): Присоединение узла следующей степени тройки (Vcurrent → Vnext, где Vnext = Vcurrent × 3).

Уточнение о промежуточных ступенях:

·         В маршруте могут присутствовать узлы разных степеней (например, 3-3-9-27-27).

·         Промежуточные ступени учитываются в длине цепи и влияют на множитель M(L).

·         Однако результирующий номинал Vres всегда рассчитывается только по максимальному узлу в цепи (см. Главу 4.2).

·         Запреты:

o    Понижение номинала (9 → 3) разрывает связь.

o    Пропуск ступени (3 → 27) разрывает связь.

3.3 Эргономика связи (UX)

  • Snap-эффект: Магнитный захват узла происходит при попадании курсора/пальца в радиус 80% от размера соты.
  • Soft Undo (Живой откат): При движении пальца в обратном направлении по линии, узлы мгновенно исключаются из стека маршрута.
  • Визуальное напряжение линии:
    • 2-3 узла: Нить толщиной 2px.
    • 4-6 узлов: Кабель 4px с внутренним свечением (Glow).
    • 7+ узлов (Поток): Толщина 6px + динамическая Вибрация (амплитуда $\pm1.5$ px, частота 10 Hz).

Раздел 3.4: Рендеринг линии (Rendering Logic)

Уточнение визуального представления линии для разработчика:

·         Геометрия: Линия рисуется как ломаная (polyline), проходящая через центры всех узлов текущего маршрута.

·         Приоритет отрисовки: Линия всегда находится в верхнем слое (z-index), рисуется поверх всех узлов, включая активный (масштабированный), как и указано в п. 1.6.

·         Сглаживание: для создания эффекта "энергетического состояния" (п. 1.6) используется сглаженная линия (lineCap = 'round'lineJoin = 'round').

·         Алгоритм вибрации (для длины 7+):

1.    На каждый кадр анимации (в requestAnimationFrame) берется массив опорных точек (центры узлов).

2.    Для каждого сегмента линии между точками i и i+1 вычисляется его нормаль (перпендикуляр).

3.    К координатам каждой второй точки (т.е. точек, не являющихся началом или концом всего маршрута) применяется смещение вдоль нормали. Величина смещения = sin(время_с_начала_вибрации * частота + i) * амплитуда. Это создает эффект "бегущей волны" или дрожания.

4.    Амплитуда: 1.5px, частота: 10 Гц (10 колебаний в секунду). При 60 FPS это означает изменение фазы примерно на 1.05 радиан за кадр.

Обоснование: Четкое описание геометрии и алгоритма вибрации снимает все вопросы по реализации ключевого визуального эффекта и гарантирует, что он будет выглядеть именно так, как задумано, без потери производительности.

 


ГЛАВА 4. Система Схлопывания (Collapse & Score)

4.1 Точка Синтеза

  • В отличие от 2048, где блоки сдвигаются к краю, здесь все узлы маршрута исчезают, а результат синтезируется строго в последнем узле (место отрыва пальца).

4.2 Алгоритм расчета результата

  • Результирующий номинал Vres — это степень тройки, следующая за максимальным номиналом, участвовавшим в цепи.
  • Формула (стандартный случай):

text

Vres = max(Vchain) × 3

  • Пример: Цепочка 3-3-9-27-27 → max = 27 → Vres = 81.
  • Superchain (для сверхдлинных цепей L ≥ 12):

Если сумма всех номиналов в цепи значительно превышает следующую степень, система может выдать +2 шага по шкале.

Точный порог:

text

Если L ≥ 12 И Σ(Vchain) ≥ max(Vchain) × 3 × 2,

то Vres = max(Vchain) × 9 (+2 шага)

  • Важное уточнение: Промежуточные значения не суммируются в базовый результат (кроме условия для superchain). Vres применяется только к последнему узлу (место отрыва пальца).

4.3 Экономика очков и Множители

  • Очки за ход: $S = \sum(V_{chain}) \times M$.
  • Шкала множителей (M):
    • Длина 2: x1.0
    • Длина 3: x1.2
    • Длина 4: x1.5
    • Длина 5-6: x2.0
    • Длина 7-11: x3.0
    • Длина 12+: x4.0 + Бонус «Чистая вода» (1000 очков).

ГЛАВА 5. Физика поля: Песочная Гравитация (Sand Gravity)

5.1 Создание Вакуума

  • После исчезновения маршрута (Collapse) на поле образуются пустые ячейки. Система переходит в состояние FALLING.

5.2 Механика падения (Downflow)

  • Узлы, не имеющие опоры снизу, перемещаются в пустые ячейки по векторам 5 (South-East) и 7 (South-West) часов.

·         5.3 Приоритет Лёгкости (The Sand Logic)

·         Если на одну пустую ячейку претендуют два узла из верхних рядов, первым её занимает узел с наименьшим номиналом.

·         Смысл: Крупные числа («камни») тяжелее и медленнее, они склонны «зависать» в верхних слоях, в то время как мелкие числа («песок») просачиваются вниз.

·         Вероятность сбоя (пробой):
Узлы с номиналом выше 3⁶ имеют шанс упасть вне очереди (игнорируя сортировку по легкости).

·         Унифицированная формула вероятности сбоя:

·         text

·         P = min(0.15, log₃(V)/20) для всех узлов V > 3⁶

·         где log₃(V) — степень тройки (например, для 3⁷ = 7).

Раздел 5.4: Алгоритм пошагового падения (Cascade Resolution)

Для обеспечения детерминизма (п. 17.5) и предсказуемого поведения, процесс падения (состояние FALLING) реализуется как итеративный алгоритм:

1.    Инициализация: Система получает список всех пустых ячеек (emptyCells) после фазы COLLAPSING.

2.    Цикл падения: Пока в предыдущем проходе были перемещения, выполнять:
a. 
Сбор претендентов: Для каждой пустой ячейки (row, col) определить, есть ли над ней (по векторам 5 и 7 часов) ячейки с узлами.
b. 
Разрешение коллизий: Если на одну пустую ячейку претендуют два узла (левый верхний и правый верхний), выбирается тот, у которого меньше номинал (Приоритет Лёгкости, п. 5.3).
c. 
Одновременное перемещение: Все выбранные пары (узел -> пустая ячейка) выполняют перемещение одновременно. Это важно, чтобы избежать эффекта "каскада" внутри одного шага цикла.
d. 
Обновление списков: Список пустых ячеек и позиций узлов обновляется.
e. 
Повтор: Цикл начинается заново, пока на шаге (b) не будет найдено ни одного претендента.

3.    Завершение: Состояние FALLING завершается, система переходит к SPAWNING.

Обоснование: Такой пошаговый подход гарантирует, что "песок" (маленькие числа) гарантированно просочится вниз, а "камни" (большие числа) зависнут, создавая нужную игровую динамику, и при этом результат всегда будет одинаков для одного и того же начального состояния.

6. Математика чисел и Окно генерации (Generation Window)

6.1 Числовая система

Все игровые значения — степени тройки:

3¹ = 3 

3² = 9 

3³ = 27 

3 = 81 

... 

= 14348907

Никакие другие числа в системе не допускаются.


6.2 Окно генерации

В каждый момент времени активно ровно 3 номинала:

Window = [Vn, Vn+1, Vn+2]

Пример:

[3, 9, 27]


6.3 Баланс вероятностей

При генерации нового узла:

  • младший: 70%
  • средний: 25%
  • старший: 5%

Сумма всегда = 100%.


6.4 Эволюция окна (Shift)

При достижении нового максимального номинала:

maxValue >= Vn+2

Происходит сдвиг:

Window = [Vn+1, Vn+2, Vn+3]

Младший исключается навсегда.


6.5 Механика спасения (Ghost Nodes)

Если на поле присутствуют номиналы ниже младшего окна:

С вероятностью 1–2%:

  • может сгенерироваться «призрачный» узел старого номинала.

Тип:

type = "ghost"

Ghost:

  • участвует в маршрутах,
  • учитывается в смерти,
  • визуально полупрозрачный (alpha = 0.6).

Раздел 6.6: Пул исторических номиналов для Ghost

Для механики спасения (п. 6.5) необходимо определить источник "старого номинала".

·         Пул номиналов: "Старым" считается любой номинал, который был в окне генерации ранее, но был исключен из него при сдвиге.

·         Вероятность выбора: при срабатывании шанса 1-2% на генерацию ghost-узла, его номинал выбирается равновероятно из всего пула исторических номиналов.

o    Пример: Окно сдвинулось с [3,9,27] на [9,27,81]. Пул исторических номиналов = [3]. Шанс 2% на спавн тройки.

o    Пример: Окно сдвинулось с [9,27,81] на [27,81,243]. Пул = [3,9]. При спавне ghost с вероятностью 50% появится 3, с 50% — 9.

Обоснование: Это правило простое для разработчика, использует уже существующие данные (историю сдвигов) и делает механику ghost прозрачной и предсказуемой для балансировки.

 

7. Экономика очков (Score System)

7.1 Множитель по длине маршрута

Длина L

Множитель

2

x1.0

3

x1.2

4

x1.5

5–6

x2.0

7–11

x3.0

12+

x4.0 + 1000


7.2 Формула очков

Base Score:

Sbase = Σ(Vi)

Final:

Sfinal = Sbase × M(L)


7.3 Пример

Цепочка:

3-3-3-3-3

Sbase = 15
M(5) = 2.0

Итог:

30 очков


8. Алгоритм смерти (Game Over System)

8.1 Критерий смерти

Игра завершается, если одновременно:

  1. Не существует ни одного маршрута длиной ≥ 2.
  2. На поле нет ни одного узла из активного окна.
  3. Не сработал шанс Ghost (2%).

8.2 Семантика смерти

Смерть трактуется как:

потеря связности живой числовой сети.

Не переполнение.
Не физический тупик.
А топологическая невозможность построить путь усиления.


8.3 Вызов GameOver

При выполнении условий:

state = GAMEOVER

Показывается confirm:

New Game?


9. Числовой кап и Сингулярность

9.1 Hard Cap

Максимальный отображаемый номинал:

= 4782969


9.2 Сингулярность

= 14348907

Тип:

type = "singularity"

Свойства:

  • чёрный цвет,
  • логотип Трон,
  • не участвует в merge,
  • не учитывается в очках.

9.3 Большой Взрыв

Если образуются 3 сингулярности, связанные гранями:

Происходит:

  • очистка всего поля,
  • запуск New Game+,
  • окно генерации смещается на +3 уровня.

9.4 Экономика сингулярности

Score:

0

Смысл:

  • трофей,
  • инструмент очистки,
  • переход на более высокий уровень сложности.

Раздел 9.5: Взаимодействие с сингулярностью

Уточнение статуса узла типа singularity в навигационной модели:

  • Навигация: Сингулярность является непроходимым препятствием. Прокладывать маршрут через неё (т.е. включать её в цепочку Node A -> Singularity -> Node Bзапрещено.
  • Блокировка: Если игрок при построении маршрута пытается перейти на сингулярность или через неё, происходит стандартная обработка невалидного хода (п. 19.1). Связи с сингулярностью визуально не отображаются и логически не существуют для маршрута.
  • Исключение: Единственное взаимодействие с сингулярностью — это образование троицы для "Большого Взрыва" (п. 9.3), которое проверяется как особое состояние поля, а не как игровой ход.

Обоснование: Это устраняет двусмысленность фразы "блокирует маршрут". Сингулярность — это стена, а не часть пути. Это делает её роль более тактильной и значимой.


10. Формальная модель сложности (Difficulty Curve)

10.1 Формула роста старшего

P = min(25%, 5% + floor(turns / 20) * 5%)


10.2 Этапы

100 ходов:

  • отключение Ghost.

150 ходов:

  • фиксация окна (больше не сдвигается).

10.3 Casual Guardrail

Если:

3 поражения подряд < 50 ходов

То:

  • временное снижение сложности,
  • +5% к шансу Ghost.

Механизм действует до первой успешной сессии > 100 ходов.

 

11. Режимы игры (Game Modes)

11.1 Classic

Базовый режим.

Характеристики:

  • активна регенерация узлов,
  • окно генерации сдвигается,
  • действует вся кривая сложности.

Это основной режим баланса и телеметрии.


11.2 Zen

Режим обучения и расслабления.

Характеристики:

  • окно фиксировано: [3, 9, 27],
  • регенерация активна,
  • смерть отключена,
  • очки считаются, но не пишутся в Best.

Назначение:

  • обучение механике маршрутов,
  • сенсорный комфорт,
  • демонстрационный режим.

11.3 Hexa-Storm

Режим динамической топологии.

Характеристики:

  • каждые 10 ходов инвертируется вектор регенерации,
  • сохраняются все остальные правила.

Состояние режима:

gravityVector

turnsToInversion

(термин gravityVector сохраняется как исторический, но семантически означает направление регенерации).


12. Когнитивная адаптация (Intro System)

12.1 Этапы включения механик

0–20 ходов:

  • только номиналы: 3 и 9,
  • линия без glow и вибрации.

21–50 ходов:

  • добавляется 27,
  • включается glow,
  • активируются Ghost.

51+ ходов:

  • вся система активна.

12.2 Правило переключений

Переключение этапов допускается только в состоянии IDLE,
при полном отсутствии активных анимаций.


13. Телеметрия (Telemetry System)

Все данные логируются в «Сферу».

13.1 Логируемые параметры

  • длины маршрутов,
  • максимальный номинал,
  • количество ходов,
  • плотность сети,
  • количество Ghost,
  • количество сингулярностей.

13.2 Формат данных

{

  "meta": {

    "sessionId": "string_uuid",

    "seed": 123456789,

    "mode": "classic|zen|storm"

  },

  "stats": {

    "turns": 452,

    "maxValue": 19683,

    "totalScore": 85400,

    "avgChainLength": 3.2,

    "ghostsSpawned": 12,

    "singularitiesCreated": 1

  },

  "termination": {

    "reason": "no_matches|window_lock|full_lock|user_exit",

    "lastGridDensity": 0.95

  }

}


13.3 Назначение телеметрии

Используется для:

  • балансировки окна,
  • оценки сложности,
  • анализа удержания,
  • выявления тупиковых конфигураций сети.

14. Технические требования и сохранение

14.1 Производительность

Цель:

60 FPS стабильно

Любые аллокации в игровом цикле запрещены.


14.2 Сохранение

Сохраняется:

  • grid,
  • Score,
  • Best,
  • WindowState,
  • currentMode.

Хранилище:

localStorage

Формат: snapshot всего состояния.


14.3 Domain Lock

Игра разрешена к запуску только на домене tron.ru.

При несоответствии:

  • выполнение блокируется.

15. Маркетинг (как часть релизного регламента)

Этот раздел сохраняется как часть продакшен-документа,
не как концепт.

15.1 Слоган

Троичная логика в навигации живой числовой сети


15.2 One-liner

Шесть направлений, три числа и одна сеть, которую можно усилить.


15.3 Этапы релиза

  1. Релиз на tron.ru
  2. Тестирование со Сферой
  3. Google Play

16. Дополнительные уточнения (Production Parameters)


16.1 Стратегия ресайза (Адаптивность)

Выбор

Используется Вариант A — Dynamic Redraw.


Логика

При любом событии:

  • resize окна,
  • смена ориентации,

Canvas:

  • пересчитывает cellSize,
  • исходя из min(screenWidth, screenHeight).

Соотношение сторон пирамиды (8 рядов) фиксировано.


Визуальное правило

Поле:

  • всегда полностью вписано в экран,
  • центрировано,
  • без скролла.

Матрица grid не изменяется,
меняются только координаты отрисовки.


16.2 Начальное состояние (Initial State)

Стартовый режим: Mixed Start


Механика

Новая игра начинается с пустого поля,
после чего вбрасываются 5 случайных узлов
из текущего стартового окна.

Начальное окно:

[3, 9]


Позиционирование

Вброс происходит в случайные узлы:

  • 7 и 8 ряд.

Вероятности

  • 70% — 3
  • 30% — 9

Вариативность

Допускается:

  • увеличение до 6–7 стартовых узлов,
  • но не более 7.

Раздел 16.2 (Редакция): Начальное состояние (Initial State)

Уточнение алгоритма начального вброса:

·         Алгоритм: Новая игра начинается с пустого поля grid. Запускается цикл, который выполняется ровно 5 итераций (или до 6-7, если решено увеличить сложность).

·         Условие: На каждой итерации:

1.    Генерируется случайная позиция в рядах 7 или 8 (индексы рядов 6 и 7 при нумерации с 0).

2.    Проверяется, свободна ли эта ячейка.

3.    Если свободна — в ней создается новый узел. Номинал определяется согласно весам (70% на 3, 30% на 9).

4.    Если занята — генератор повторяет попытку. Для предотвращения бесконечного цикла (если свободных ячеек в нижних рядах не осталось) предусмотрен лимит попыток (например, 100). Если за 100 попыток не найдено свободное место, алгоритм аварийно завершается (такая ситуация невозможна при старте с пустым полем, но требование есть).

Обоснование: Добавление проверки на коллизию и защиту от бесконечного цикла делает спецификацию законченной с точки зрения программирования.

 


16.3 Hexa-Storm: физика инверсии

(Термин «физика» сохраняется исторически,
семантически — логика регенерации.)


Инвариант

Приоритет «лёгкости» сохраняется при любой инверсии.


Логика

При смене направления регенерации:

  • «лёгкие» номиналы (3, 9)
    первыми занимают новые позиции,
  • «тяжёлые» (81+)
    дольше сохраняют текущие узлы.

16.4 Soft Undo: определение сессии


Сессия

Сессия — интервал между:

New Game → Game Over


Ограничение

1 Soft Undo на сессию.


Хранение

Счётчик Undo:

  • хранится в localStorage,
  • внутри объекта сессии.

Перезагрузка страницы:

  • не восстанавливает Undo.

Штраф

При использовании Undo:

Score = Score × 0.9


16.5 Тайминги и анимация (Physics Timing)

  • Лерп-распухание: k = 0.15 (цель 1.2x за 100–150ms).
  • Collapse: Перед удалением узлов микро-пауза 100ms с белой вспышкой линии.
  • Падение (Falling):

Базовая скорость: 300ms на один узел.

Ускорение при множественном падении:

    • Ускорение линейное по рядам.
    • Формула времени падения через rowDistance рядов:

text

t = baseTime × (1 - 0.1 × (rowDistance - 1))

где baseTime = 300ms, rowDistance ≥ 1.

Пример: Падение через 3 ряда → t = 300 × (1 - 0.1 × 2) = 240ms.

  • Блокировка ввода:
    Состояние ANIMATING блокирует любой ввод игрока до полного завершения всех анимаций падения. Это исключает возможность построения маршрута во время падения.

16.6 Звуковой ландшафт (Minimalist Sound Design)

Концепция

«Триада». Только чистые синусоидальные тоны.


События

Связь узлов:

  • повышающийся тон,
  • каждая новая сота — +1 ступень мажорного трезвучия.

Collapse:

  • мягкий колокольчик,
  • 432 Гц.

Сингулярность:

  • низкочастотный дрон.

Ошибка:

  • короткий низкий тон.

Управление

Иконка «Динамик»:

  • полное отключение звука.

Раздел 16.7: Интерфейс пользователя (UI Components)

В дополнение к визуальной концепции (Глава 1) и требованиям Blogger.com (Глава 20), специфицируются элементы интерфейса:

·         Кнопка Undo: Располагается в нижней панели управления. Визуально — круг с иконкой "изогнутая стрелка", выполненный в стиле "только border, без background-color" (согласно п. 20.5).

·         Счетчик Undo: Рядом с кнопкой отображается дробь: 1/1 (использовано/доступно). В начале сессии — 0/1. После использования Undo — 1/1. Кнопка деактивируется (становится серой и неактивной).

·         Применение штрафа: Штраф (Score × 0.9) применяется мгновенно при нажатии кнопки Undo, до восстановления состояния из снепшота. Это дает четкую обратную связь игроку о потере очков.

Обоснование: Дизайн должен быть целостным. Раз игрок может взаимодействовать с Undo, у этого взаимодействия должен быть четкий интерфейс, вписанный в общий минималистичный стиль.

 

ГЛАВА 17. Критические спецификации ядра (Core Logic Specs) — v3.1 (FULL)

17.1 State Machine (Жизненный цикл)

  • Состояния: INIT → IDLE → DRAGGING → PROCESSING → COLLAPSING → FALLING → SPAWNING → GAMEOVER.
  • FALLING (Новое): Состояние расчета гравитационного смещения узлов. Ввод заблокирован.
  • IDLE: Единственное состояние, где разрешены начало маршрута и Soft Undo .

17.2 Алгоритм генерации (Spawn System)

  • Триггер: Происходит после завершения фазы FALLING.
  • Количество: Строго 1 новый узел за результативный ход.
  • Локация: Новые узлы «вливаются» в систему сверху.

Приоритет верхнего ряда:

    1. Сначала ищем пустые ячейки в ряду 0.
    2. Если ряд 0 полностью заполнен → спавн в ряду 1.
    3. Если ряд 1 заполнен → ряд 2 и так далее.
  • Deadlock prevention:
    Если свободных ячеек нет вообще (все 44 узла заняты), то после завершения FALLING вызывается:

text

Game Over (FULL_LOCK)

  • Номинал: Веса 70% / 25% / 5% из текущего Окна

17.3 Правила Merge (Collapse Logic)

  • Условие: Длина маршрута $L \ge 2$.
  • Результат: Удаление всей цепи, кроме последней точки.
  • Формула: $V_{new} = \max(V_{chain}) \times 3$ (согласно правилам эскалации 2248).
  • Сингулярность: Не участвует в merge, блокирует маршрут .

17.4 Физика Гравитации (Gravity & Sorting)

·         Тип: Sand Gravity.

·         Логика: Узлы падают в пустые ячейки снизу (векторы 5 и 7 часов).

·         Приоритет: Сначала падают меньшие номиналы («песок»), затем крупные («камни»).

·         No-Cascade — уточнение:

o    Все схлопывания, образовавшиеся во время состояния FALLING, не учитываются в активной линии игрока.

o    Игрок может продолжать строить маршрут только на существующих узлах после окончания анимации падения.

o    Гравитационное падение не вызывает автоматических слияний, даже если после падения узлы совпадают по номиналу.

o    Автоматические merge происходят только по инициативе игрока в состоянии DRAGGING.

  • .

17.5 Determinism & RNG

  • Запрещено: Math.random().
  • Генератор: LCG (Linear Congruential Generator).
  • Seed: Генерируется при старте, сохраняется в телеметрии для воспроизводимости .

17.6 Модель данных (Data Model)

  • HexCell: Объект содержит id, r, q, value, type (normal/ghost/singularity) .
  • Дополнение: Флаг isFalling для управления анимацией падения.

17.7 Система очков (Score Formula)

  • Base: $S_{base} = \sum(V_i)$.
  • Multiplier: $M(L)$ согласно таблице из Главы 7.

+1

  • Final: $S_{final} = S_{base} \times M(L)$.

17.8 Победа и цель (Victory Condition)

  • Тип: Endless High Score.
  • Soft Win: Первая сингулярность ($3^{15}$) вызывает салют и ачивмент «Архитектор» .

17.9 Мета-прогресс (Zero-Meta)

  • Запрещено: Валюты, апгрейды, бусты .
  • Хранение: Только текущая сессия и Best Score в localStorage .

17.10 AI / Bot (Debug Mode)

  • GreedyBot: Алгоритм для балансировки.
  • Метод: Сканирует поле, выбирает маршрут с максимальным $S_{final}$.
  • Статус: Вырезается из релизной версии (DEBUG = false) .

 

18. Синхронизация противоречий (Final Sync)

Раздел фиксирует приоритеты, если разные части спецификации дают конфликтующие требования.


18.1 Collapse: вспышка vs скорость

Терминология

«Мгновенно» = без анимации перемещения узлов.

Правило

Если длина маршрута:

L >= 12

То:

  • при touchend → белая вспышка 100ms,
  • сразу после вспышки узлы удаляются из grid без промежуточных кадров.

Если:

L < 12

То:

  • без вспышки,
  • стандартное удаление.

18.2 Spawn: инициализация vs игровой цикл

Инициализация (Initial State)
Исключение:

  • в начале партии → 5 стартовых узлов внизу.

Игровой цикл (Loop)
Норма:

  • строго 1 новый узел за результативный ход.

18.3 Тип узла Ghost

Статус в модели

type = "ghost"

Логика

Ghost:

  • участвует в маршрутах,
  • участвует в смерти,
  • участвует в merge как normal.

Рендер

  • alpha = 0.6
  • либо десатурация цвета.

19. Дополнительные логические протоколы


19.1 Обработка пустого хода (Invalid Interaction)

Критерий

Маршрут:

L < 2

или разные номиналы.


Результат

Состояние:

IDLE не прерывается


Последствия

  • счётчик ходов не увеличивается,
  • spawn не происходит,
  • сложность не меняется.

Визуал

  • линия исчезает,
  • целевой узел окрашивается в #FFCDD2 на 100ms.

Звук

Короткий низкий тон («ошибка»).


19.2 Лимит длины маршрута (UX / Performance)

Hard Cap

Отсутствует.
Допустимо захватить все 44 узла.


Требование

Реализация:

  • zero-allocation,
  • 60fps при максимальной длине.

19.3 Экономика сингулярности

Сингулярность:

  • не даёт очков,
  • не влияет на score,
  • используется только как:
    • трофей,
    • триггер очистки.

19.4 Протокол Soft Undo (Rollback Point)

Snapshot Point

Полный снимок состояния в момент:

IDLE → перед touchstart


Откат

При нажатии Undo:

  • восстановление snapshot,
  • состояние возвращается в IDLE.

Защита от лагов

Если Undo вызван во время ANIMATING:

  • команда ставится в очередь,
  • выполняется при возврате в IDLE.

19.5 Схема телеметрии для Сферы

Финальный формат:

{

  "meta": {

    "sessionId": "string_uuid",

    "seed": 123456789,

    "mode": "classic|zen|storm"

  },

  "stats": {

    "turns": 452,

    "maxValue": 19683,

    "totalScore": 85400,

    "avgChainLength": 3.2,

    "ghostsSpawned": 12,

    "singularitiesCreated": 1

  },

  "termination": {

    "reason": "no_matches|window_lock|full_lock|user_exit",

    "lastGridDensity": 0.95

  }

}


19.6 Классификация причин Game Over

NO_MATCHES

Есть узлы, но нет маршрутов.

WINDOW_LOCK

Числа есть, но окно ушло.

FULL_LOCK

Все 44 узла заняты, и нет маршрутов.


20. Техническая адаптация для Blogger.com

Этот раздел — обязательный регламент деплоя.


20.1 Ограничения платформы

Запрещено:

  • <style>
  • внешние CSS
  • flex / grid
  • position: absolute / fixed
  • отрицательные margin

20.2 Табличный каркас

Все сложные структуры:

<table width="100%">


20.3 Работа со ссылками

Только абсолютные ссылки:

https://...

Любое упоминание сайта — активная ссылка.


20.4 Визуальный регламент

Основной текст:

  • без фиксированного цвета.

Цвет разрешён:

  • только для кнопок,
  • только для акцентов.

20.5 Адаптация интерфейса

Максимальная ширина поля:

400px

Отступы:

padding: 10px

Базовый цвет UI:

#3E2723

Кнопки:

  • только border,
  • без background-color.

20.6 Регламент выдачи

Заголовок поста:

  • отдельной строкой перед кодом.

Description:

  • отдельной строкой после кода,
  • не более 150 символов.

20.7 Чистота выдачи

Финальный HTML:

  • только код,
  • без пояснений,
  • без комментариев,
  • без вступлений.

ИГРА

.