Files
neurox/latex/md_README_8old.tex
T
2026-05-19 06:22:43 +05:00

142 lines
19 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
\chapter{README.\+md}
\hypertarget{md_README_8old}{}\label{md_README_8old}\index{README.md@{README.md}}
\label{md_README_8old_autotoc_md57}%
\Hypertarget{md_README_8old_autotoc_md57}%
\hypertarget{md_README_8old_autotoc_md58}{}\doxysection{\texorpdfstring{Neur\+OX\+: Крестики‑нолики с ИИ или войти в IT}{NeurOX: Крестики‑нолики с ИИ или войти в IT}}\label{md_README_8old_autotoc_md58}
\hypertarget{md_README_8old_autotoc_md59}{}\doxysubsection{\texorpdfstring{Цель проекта}{Цель проекта}}\label{md_README_8old_autotoc_md59}
Разработка экосистемы многопользовательской игры крестики-\/нолики в классическом исполнении с полным стеком технологий от С до Android и Web.\hypertarget{md_README_8old_autotoc_md60}{}\doxysubsection{\texorpdfstring{Суть челленджа}{Суть челленджа}}\label{md_README_8old_autotoc_md60}
Собрать систему «с нуля», в минималистичном стиле с мнимумом инструментов\+:
\begin{DoxyItemize}
\item нейросеть на чистом C (без ML‑библиотек);
\item ядро игры с ручным управлением памятью;
\item NGINX + PHP + Code\+Igniter (REST API);
\item десктоп‑клиент на C++/\+SFML;
\item Android‑клиент Java/\+Kotlin;
\item сетевая связь по TCP/\+IP;
\item шифрование\+: RSA (2048 бит) для рукопожатия + динамический XOR для данных.
\end{DoxyItemize}\hypertarget{md_README_8old_autotoc_md61}{}\doxysubsection{\texorpdfstring{Текущий статус}{Текущий статус}}\label{md_README_8old_autotoc_md61}
Проект стартует с чистого листа. На данный момент\+:
\begin{DoxyItemize}
\item определена архитектура системы;
\item выбран стек технологий;
\item начата работа над ядром на C.
\end{DoxyItemize}
{\bfseries{Что предстоит\+:}}
\begin{DoxyItemize}
\item реализовать базовую логику игры (3×3);
\item написать нейросеть на C (обучение на партиях);
\item создать REST API на PHP для связи компонентов;
\item разработать десктоп‑ и Android‑клиенты;
\item внедрить схему шифрования;
\item интегрировать все части в единую систему.
\end{DoxyItemize}\hypertarget{md_README_8old_autotoc_md62}{}\doxysubsection{\texorpdfstring{Прогресс}{Прогресс}}\label{md_README_8old_autotoc_md62}
Весь прогресс отражен в файле {\bfseries{\doxysectlink{md_PROGRESS}{PROGRESS.md}{0}}}\hypertarget{md_README_8old_autotoc_md63}{}\doxysubsection{\texorpdfstring{Реалистичный план этапов (дорожная карта)}{Реалистичный план этапов (дорожная карта)}}\label{md_README_8old_autotoc_md63}
{\bfseries{Принцип планирования\+:}}
\begin{DoxyItemize}
\item работа ведётся небольшими сессиями (30–60 минут) в свободное время;
\item приоритет — последовательность, а не скорость;
\item каждый этап завершается минимально жизнеспособным результатом (MVP‑подход);
\item гибкость\+: этапы можно менять местами или дробить на подзадачи.
\end{DoxyItemize}\hypertarget{md_README_8old_autotoc_md64}{}\doxysubsubsection{\texorpdfstring{Этап 1. Ядро на C (логика + нейросеть) — 3–4 месяца}{Этап 1. Ядро на C (логика + нейросеть) — 3–4 месяца}}\label{md_README_8old_autotoc_md64}
\begin{DoxyItemize}
\item базовая логика игры (3×3 доска, проверка победы);
\item простая нейросеть (3 слоя, сигмоида, обучение на 100+ партиях);
\item консольный режим для тестирования;
\item битовые маски для оптимизации доски.
\end{DoxyItemize}\hypertarget{md_README_8old_autotoc_md65}{}\doxysubsubsection{\texorpdfstring{Этап 2. Сервер на PHP (\+API + БД) — 2–3 месяца}{Этап 2. Сервер на PHP (API + БД) — 2–3 месяца}}\label{md_README_8old_autotoc_md65}
\begin{DoxyItemize}
\item REST API ({\ttfamily /start\+\_\+game}, {\ttfamily /make\+\_\+move}, {\ttfamily /get\+\_\+state});
\item интеграция с ядром через Unix‑сокеты;
\item SQLite для хранения партий и статистики;
\item логирование запросов.
\end{DoxyItemize}\hypertarget{md_README_8old_autotoc_md66}{}\doxysubsubsection{\texorpdfstring{Этап 3. Десктоп‑клиент (\+C++/\+SFML) — 34 месяца}{Этап 3. Десктоп‑клиент (C++/SFML) — 3–4 месяца}}\label{md_README_8old_autotoc_md66}
\begin{DoxyItemize}
\item базовый UI (доска 3×3, кнопки);
\item связь с сервером по TCP/\+IP;
\item анимация ходов и победы;
\item кэширование состояния для офлайн‑режима.
\end{DoxyItemize}\hypertarget{md_README_8old_autotoc_md67}{}\doxysubsubsection{\texorpdfstring{Этап 4. Шифрование (\+RSA + XOR) — 12 месяца}{Этап 4. Шифрование (RSA + XOR) — 1–2 месяца}}\label{md_README_8old_autotoc_md67}
\begin{DoxyItemize}
\item RSA‑рукопожатие (2048 бит, Open\+SSL);
\item динамический XOR (смена ключа по таймеру/счётчику);
\item проверка целостности пакетов (CRC32);
\item тесты на утечку памяти и производительность.
\end{DoxyItemize}\hypertarget{md_README_8old_autotoc_md68}{}\doxysubsubsection{\texorpdfstring{Этап 5. Android‑клиент (\+Kotlin + NDK) — 46 месяцев}{Этап 5. Android‑клиент (Kotlin + NDK) — 46 месяцев}}\label{md_README_8old_autotoc_md68}
\begin{DoxyItemize}
\item MVP\+: доска 3×3 и связь с сервером;
\item вызов C‑библиотеки через JNI;
\item поддержка шифрования;
\item оптимизация под мобильные устройства.
\end{DoxyItemize}\hypertarget{md_README_8old_autotoc_md69}{}\doxysubsubsection{\texorpdfstring{Этап 6. Интеграция и тестирование — 2–3 месяца}{Этап 6. Интеграция и тестирование — 2–3 месяца}}\label{md_README_8old_autotoc_md69}
\begin{DoxyItemize}
\item синхронизация состояния между десктопом и Android;
\item стресс‑тест (10+ одновременных игр);
\item отладка многопоточности;
\item финальная оптимизация.
\end{DoxyItemize}\hypertarget{md_README_8old_autotoc_md70}{}\doxysubsubsection{\texorpdfstring{Этап 7. Релиз MVP — 1 месяц}{Этап 7. Релиз MVP — 1 месяц}}\label{md_README_8old_autotoc_md70}
\begin{DoxyItemize}
\item сборка дистрибутивов (Windows, Linux, Android);
\item документация для запуска;
\item публикация демо‑видео.
\end{DoxyItemize}
\DoxyHorRuler{0}
\hypertarget{md_README_8old_autotoc_md72}{}\doxysubsection{\texorpdfstring{Гибкость и адаптация}{Гибкость и адаптация}}\label{md_README_8old_autotoc_md72}
{\bfseries{Если времени меньше\+:}}
\begin{DoxyItemize}
\item пропускаю Android‑клиент — фокусируюсь на десктопе;
\item заменяю RSA на Open\+SSL (готовые функции);
\item упрощаю нейросеть до минимакса;
\item откладываю динамический XOR на будущее.
\end{DoxyItemize}
{\bfseries{Если появляется больше времени\+:}}
\begin{DoxyItemize}
\item ускоряю этапы за счёт увеличения сессий;
\item добавляю фичи (режим PvP, статистика, темы UI).
\end{DoxyItemize}\hypertarget{md_README_8old_autotoc_md73}{}\doxysubsection{\texorpdfstring{Технологии}{Технологии}}\label{md_README_8old_autotoc_md73}
\hypertarget{md_README_8old_autotoc_md74}{}\doxysubsection{\texorpdfstring{Особенности архитектуры, решений и тактик (добавлено 22.\+04.\+2026)}{Особенности архитектуры, решений и тактик (добавлено 22.04.2026)}}\label{md_README_8old_autotoc_md74}
\hypertarget{md_README_8old_autotoc_md75}{}\doxysubsubsection{\texorpdfstring{ИИ аспект}{ИИ аспект}}\label{md_README_8old_autotoc_md75}
Начиная с истоков увлечения программированием привык полагаться на результаты работы кода(профилирование) и нежеланием заниматься рефакторингом ради рефакторинга, по-\/этому на данном этапе своей жизни используюю ИИ в первую очередь для препрофилирования нагрузок и определения узких мест на стадии разработки Архитектуры, считаю что от этого зависит львиная доля успешности проекта впринципе(если на скорую руку сделать архитектуру, даже самые опытные разработчики не помогут, тут и начинается описанный выше рефакторинг). Единственным моим ассистентом и специалистом по части критики и статистики является Yandex\+GPT 5.\+1 Pro(Алиса\+AI). Порой наши многочасовые споры выматывают, но она очень помогает в следующих аспектах\+:
\begin{DoxyItemize}
\item Анализ кода в части читаемости, т.\+к. проект публичен.
\item Сбор статистики по типовым нагрузкам.
\item Понимание алгоритмов и шаблонов работы ИИ при статическом анализе кода.
\end{DoxyItemize}
Что я понял за время общения с ней\+:
\begin{DoxyItemize}
\item Никогда не верьте ИИ "{}на слово"{}, как бы он Вас не уверял что больше такого не повторится.
\item Никогда не следуйте подсказкам ИИ если понимаете что это Вам не нужно.
\item 10, а лучше -\/ 100 раз переспросите с разных сторон
\item даже если Вам кажется что ИИ дал точный ответ -\/ переспросите ещё раз.
\item Не пытайтесь доказать ИИ что Вы -\/ "{}не олень"{}, он этого не оценит
\item Предлагая ИИ оценить ИИ написанный код будьте готовы к тому что Вас разнесут в пух и прах по тем аспектам где ответственность кода заканчивается, у ИИ галочка на расширяемость и проверки, вернее не "{}галочка"{} а "{}ГАЛИЩЕ"{}
\end{DoxyItemize}
Мне очень поднимают настроение многочасовые баталии с ней, однако, это отвлекает от сути. Каждый раз когда я в итоге довожу Yandex\+GPT 5.\+1 Pro(Алиса\+AI) до стадии "{}Да, Вы правы..."{} в коде я оставляю коментарии сгенерированные ею для неё же и помечаю их как "{}коментарии от Yandex\+GPT 5.\+1 Pro(Алиса\+AI)"{}. Очень часто в коментариях к коду можно встретить объяснения такого рода "{}Алиса\+AI настояла"{} в тех местах где наши мнения расходились но я пошёл на компромисс. \hypertarget{md_README_8old_autotoc_md76}{}\doxysubsubsection{\texorpdfstring{Основной посыл}{Основной посыл}}\label{md_README_8old_autotoc_md76}
Хоть проект изначально и пердполагался как портфолио, в нынешнем своём состоянии он представляет из себя немного больше. Скорее это рассказ о том "{}как это было"{}. Проект постепенно перерос в своеобразную "{}историю жизни"{}, это неординарный подход к разработке, но в виду того что я веду проект один и колаборация не предполагается, я продолжу в том-\/же духе, в первую очередь -\/ для своих детей, им интересно это читать, а мне не то чтобы не сложно, а скорее -\/ приятно писать для них. Таким образом я чувствую себя причастным ко вкладу в искуство и к произведению "{}История одного байта"{}, которое давным давно глубоко запало мне в душу и многому научило с философской точки зрения. \hypertarget{md_README_8old_autotoc_md77}{}\doxysubsubsection{\texorpdfstring{Образовательный аспект}{Образовательный аспект}}\label{md_README_8old_autotoc_md77}
Проект открыт для изучения, как автор -\/ не претендую на звание "{}разработчик года"{}, отнюдь, считаю что всегда есть куда идти, даже топовым кодерам, но точно знаю что некоторые техники встречающиеся в коде помогут малоопытным или "{}смежным"{} специалистам понять всю красоту низкоуровнего программирования, возможно, перенять некоторые практики и применять их вдальнейшем. Весь код будет снабжён "{}удобоваримыми"{} коментариями для специалистов всех уровней и языковых групп(имеется в виду группы языков программирования). \hypertarget{md_README_8old_autotoc_md78}{}\doxysubsubsection{\texorpdfstring{Основная стратегия KISS+\+YAGNI}{Основная стратегия KISS+YAGNI}}\label{md_README_8old_autotoc_md78}
Я не предусматриваю грандиозное расширение, проект должен обеспечить максимальную производительность и отказоустойчивость для классических крестиков-\/ноликов в многопользовательском режиме с возможностью игры против ИИ(нейросети). Как основатель проекта я не предполагаю увеличивать размер поля до MAX\+\_\+\+INT\texorpdfstring{$\ast$}{*}\+MAX\+\_\+\+INT и заниматься безопасностью ради безопасности. Каждый модуль проекта имеет строго свою область ответственности. \hypertarget{md_README_8old_autotoc_md79}{}\doxysubsubsection{\texorpdfstring{Начата разработка общих модулей, конкретно -\/ XOGame.}{Начата разработка общих модулей, конкретно - XOGame.}}\label{md_README_8old_autotoc_md79}
Разработана типичная архитектура со скрытой реализацией и заложенной возможностью изменения поведения модуля через указатели на структуры. Как и обычно(не раз проверено) внешний интерфейс константен, доступ к функциям модуля только через указатели внутри внешних неизменяемых структур. Почему именно так -\/ потому что так проще отловить ошибки, проверяем только внутреннюю реализацию, отлаживаем её и используем. Если в дальнейшем возникают ошибки -\/ это не вина модуля, это вина вызывающего кода. В контексте всего решения это избавляет от рефапкторинга ради рефакторинга и бесконечной скачки от файла к файлу. После предоставления кода {\bfseries{server/includes/\+XOGame.\+h}}, {\bfseries{server/headers/\+\_\+\+XOGame.\+h}} и {\bfseries{server/src/\+XOGame.\+c}} на ревью Yandex\+GPT 5.\+1 Pro(Алиса\+AI) и 4-\/хчасовой баталии по поводу {\bfseries{void\texorpdfstring{$\ast$}{*} fxalloc(size\+\_\+t \+\_\+\+NBytes)}} решено пока что "{}забыть"{} про реализацию XOGame.\+c и заняться аллокатором {\bfseries{fxalloc.\+c}}, иначе я не выдержу, порой она достаёт "{}до чёртиков"{} ;)\hypertarget{md_README_8old_autotoc_md80}{}\doxysubsection{\texorpdfstring{Лицензия}{Лицензия}}\label{md_README_8old_autotoc_md80}
Apache License 2.\+0 — код открыт для изучения.\hypertarget{md_README_8old_autotoc_md81}{}\doxysubsection{\texorpdfstring{Контакты}{Контакты}}\label{md_README_8old_autotoc_md81}
\begin{DoxyItemize}
\item Git\+Hub\+: \href{https://github.com/felex67}{\texttt{ @felex67}}
\item Email\+: \href{mailto:admin@felexdev.ru}{\texttt{ admin@felexdev.\+ru}}, \href{mailto:felexxx67@yandex.ru}{\texttt{ felexxx67@yandex.\+ru}}
\end{DoxyItemize}
\DoxyHorRuler{0}
{\bfseries{Важно\+:}} проект в активной разработке. Сроки ориентировочные — зависят от свободного времени. Это дневник челленджа\+: фиксация прогресса, решений и находок.
Спасибо, что следите за ходом! 🍰 Пусть каждая строка кода будет шагом к победе — в своём темпе! 🎉