NeurOX: Крестики‑нолики с ИИ (личный челлендж) 🔧
Личный проект‑вызов: создать полностековую игру «Крестики‑нолики» с самообучающимся ИИ и шифрованием трафика. Цель — проверить собственные навыки на всех уровнях стека: от низкоуровневого C до мобильного клиента.
Почему это вызов Полный типовой стэк разработки с нуля с минимумом библиотек, главный упор на эффективность кода. Основная цель - запустить полноценный сервис с минимумом затрат в условиях крайне ограниченных системных и временных ресурсов.
Суть челленджа
Собрать систему «с нуля», в минималистичном стиле с мнимумом инструментов:
- нейросеть на чистом C (без ML‑библиотек);
- ядро игры с ручным управлением памятью;
- NGINX + PHP + CodeIgniter (REST API);
- десктоп‑клиент на C++/SFML;
- Android‑клиент Java/Kotlin;
- сетевая связь по TCP/IP;
- шифрование: RSA (2048 бит) для рукопожатия + динамический XOR для данных.
Для кого этот проект
- подойдёт для изучения новичкам
- для себя - восстановление навыков
Дисклеймер
- В коде может, вернее - будет, использоваться неочевидная логика
- Если вы считаете что я где-то что-то сделал не по фэн-шую - я эстет, но в плане эффективности
- Если когда-нибудь кто-нибудь найдёт совпадение названия проекта и репозитория нарушением авторских прав - Бог Вам судья =)
- Проект личный, код открытый, милости просим, заходите и смотрите.
Текущий статус
Проект стартует с чистого листа. На данный момент:
- определена архитектура системы;
- выбран стек технологий;
- начата работа над ядром на C.
Что предстоит:
- реализовать базовую логику игры (3×3);
- написать нейросеть на C (обучение на партиях);
- создать REST API на PHP для связи компонентов;
- разработать десктоп‑ и Android‑клиенты;
- внедрить схему шифрования;
- интегрировать все части в единую систему.
Реалистичный план этапов (дорожная карта)
Принцип планирования:
- работа ведётся небольшими сессиями (30–60 минут) в свободное время;
- приоритет — последовательность, а не скорость;
- каждый этап завершается минимально жизнеспособным результатом (MVP‑подход);
- гибкость: этапы можно менять местами или дробить на подзадачи.
Этап 1. Ядро на C (логика + нейросеть) — 3–4 месяца
- базовая логика игры (3×3 доска, проверка победы);
- простая нейросеть (3 слоя, сигмоида, обучение на 100+ партиях);
- консольный режим для тестирования;
- битовые маски для оптимизации доски.
Этап 2. Сервер на PHP (API + БД) — 2–3 месяца
- REST API (
/start_game,/make_move,/get_state); - интеграция с ядром через Unix‑сокеты;
- SQLite для хранения партий и статистики;
- логирование запросов.
Этап 3. Десктоп‑клиент (C++/SFML) — 3–4 месяца
- базовый UI (доска 3×3, кнопки);
- связь с сервером по TCP/IP;
- анимация ходов и победы;
- кэширование состояния для офлайн‑режима.
Этап 4. Шифрование (RSA + XOR) — 1–2 месяца
- RSA‑рукопожатие (2048 бит, OpenSSL);
- динамический XOR (смена ключа по таймеру/счётчику);
- проверка целостности пакетов (CRC32);
- тесты на утечку памяти и производительность.
Этап 5. Android‑клиент (Kotlin + NDK) — 4–6 месяцев
- MVP: доска 3×3 и связь с сервером;
- вызов C‑библиотеки через JNI;
- поддержка шифрования;
- оптимизация под мобильные устройства.
Этап 6. Интеграция и тестирование — 2–3 месяца
- синхронизация состояния между десктопом и Android;
- стресс‑тест (10+ одновременных игр);
- отладка многопоточности;
- финальная оптимизация.
Этап 7. Релиз MVP — 1 месяц
- сборка дистрибутивов (Windows, Linux, Android);
- документация для запуска;
- публикация демо‑видео.
Гибкость и адаптация
Если времени меньше:
- пропускаю Android‑клиент — фокусируюсь на десктопе;
- заменяю RSA на OpenSSL (готовые функции);
- упрощаю нейросеть до минимакса;
- откладываю динамический XOR на будущее.
Если появляется больше времени:
- ускоряю этапы за счёт увеличения сессий;
- добавляю фичи (режим PvP, статистика, темы UI).
Технологии
- Ядро/нейросеть: C17 (GCC, POSIX.1).
- Сервер: NGINX + PHP 8.3+ + CodeIgniter.
- Десктоп‑клиент: C++17 + SFML 2.5.
- Android‑клиент: Kotlin + Android NDK.
- Сеть: TCP/IP, Unix‑сокеты (Web ↔ TCP/IP Сервер ↔ Ядро).
- Шифрование: RSA 2048 бит, XOR с динамическим ключом.
- БД: MySQL 8.0+.
- Инструменты: Git, CMake, Makefile.
- IDE: VS Code(Linux), VisualStudio(Windows).
Лицензия
Apache License 2.0 — код открыт для изучения.
Контакты
- GitHub: @felex67
- Email: admin@felexdev.ru, felexxx67@yandex.ru
Важно: проект в активной разработке. Сроки ориентировочные — зависят от свободного времени. Это дневник челленджа: фиксация прогресса, решений и находок.
Спасибо, что следите за ходом! 🍰 Пусть каждая строка кода будет шагом к победе — в своём темпе! 🎉