Этот репозиторий существует чтобы отслеживать путь обучения программирования Для начала история до начала введения репозитория.
История началась в феврале 2025 года.
Игра в опенсурс игру DDrace Network Если кратко то это 2д кооперативный платформер суть которого пройти от старта к финишу. В игре существование некие дамми которые являються второй подконтрольной сущностью для игрока. Управление дамми осуществялось через переключение на него и обе тишки (игровые персонажи) управлялись как основная. В игре нельзя было дать команду движения влево или вправо даммику не переключаясь.
Игра являеться проектом с открытым исходным кодом и разрешает игрокам подифицировать клиенты и играть с остальными с кастомного клиент. Но кастомный клиент являеться легальным то есть не читерным ровно до тех пор пока не даёт премущества. Если такой функцианал возможен на дефолтном клиенте, то всё впорядке. В это правило не попадает изменения UI.
Кодом назвать это нельзя но всё же похоже. Из будущего скажу что абсолютно все игровые дествия кроме движения прицела можно осуществлять из консоли. Также из консоли можно командой exec запустить поочерёдно ряд команд из файла.
С помощью конфигов я смог создать управление дамми не переключаясь на него. То есть команда exec move_left давала ту самую команду даммику двигаться влево. Это был первый легальный дамми дирекшен в игре. Дамми дирекшеном называли возможность отдавать команды движения неактивной тишке Ранее такие функции были только в чит клиентах и модерация была смущена моими действиями но логи им показывали что я с дефолтного клиента.
Раз уж я смог создать конфиг для дамми дирекшена то могу легально изменить клиент упростив его использование.
В моём окружении был программисть RedRay32 который мне и подсказал что у игры есть код на github и его можно менять. Открыв тот самый гитхаб я впервые увидел исходный код чего либо а также заметил пометку C++. Ничего небыло понятно из код, но стало очевидным что чтобы понять нужно учить C++.
На этом и началось программирование. Я просто вбил в гугл выучить C++ и открыл первый сайт PureCode. В течении месяца я усердно читал теорию и решал задачи начиная с простого Hello, World! и проходя указатели.
Изучив синтасис C++ я вновь открыл исходный код и начал по чуть чуть копаться в нём. Спустя ещё 2-3 недели работы я смог сделать клиент с дамми дирекшеном без знания классов на чём и построен код. Итог именно этой истории в том что клиент свой отправил на гитхаб и админы запретили дамми дирекшен в клиентах посмотрев на мою реализацию. Client
Полноценным проектом уже стал дискорд бот. PeaceDukeBot Дискорд бот предназначен для сервера клана в дднет. Писался на основе библиотеки DPP
Этот проект сдал первой действительно сложной преградой. Тут я уже на живом примере пытался изучать ООП и строить архитектуру. В следсвии изначально низких навыков я не думаю что способен поддерживать текущий код и планирую переписать всё с нуля. Проект на котором набил первые шишки и осознал о нехватки базы.
В этот период я ушёл изучать базу по трёх томника Александра Столярова. А также решение задач по нему.
В этом репозитории директории tasks как раз и являеться решением задач Иной код это зачастую игра с кодом и разбор чего-либо
В отдельных README.md будут разбросаны мои мысли по отдельным задачам и проектам в репозитории.
Эти проекты будут без какой либо даты
Игровой режим ddnet. Игроки по задумки строят сами карты и играют их. Карты в соло режиме. В одной сессии несколько раудов где количества раундов равно количеству карт Рауд длиться 5 минут а перед раудом 10-30 секунд подготовки с возможностью визуально оценить карту По окончании раунда каждому игроку начисляютья поинты Первое место получает количество поинтов равное количеству игроков которые финишировали карту Все последующие места получают на 1 меньше.
ƤØŢĀŤ0Co - Идея режима RedRay32 - Первый релиз Я и ByFox - полностью переписали
В период блокировок РКН встроеный в клиент браузер серверов не работал Решение проблем было через получение json файла со списком серверов от сторонего сервера к которому есть доступ Для отображение я создал парсер json с его отображением В будущем планирую к нему полноценный TUI интерфейс
Это алгоритм суть которого предложить группе игроков карту для прохождения Принимает внутрь себя список игроков Далее смотрит на пройденые карты каждого и вычисляет скилл игрока В ответ выдаёт 10 карт отсортированых по популярности которые совпадают по скиллу и не пройдены у большинства