\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) — 3–4 месяца}{Этап 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) — 1–2 месяца}{Этап 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) — 4–6 месяцев}{Этап 5. Android‑клиент (Kotlin + NDK) — 4–6 месяцев}}\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{Важно\+:}} проект в активной разработке. Сроки ориентировочные — зависят от свободного времени. Это дневник челленджа\+: фиксация прогресса, решений и находок. Спасибо, что следите за ходом! 🍰 Пусть каждая строка кода будет шагом к победе — в своём темпе! 🎉