Требуется реализовать динамическую библиотеку, обладающую заданной функциональностью, а также отдельное приложение с пользовательским интерфейсом, использующее эту динамическую библиотеку и позволяющее пользователю воспользоваться её функциональностью.
Подсчёт количества арабских цифр, содержащихся в заданной строке символов.
Метод библиотеки CountDigits
принимает на вход строку, после чего пробегает в цикле по каждому символу строки, проверяя, является ли он арабской цифрой, после чего увеличивает счетчик на единицу если символ является цифрой или сразу переходит к следующему. В конце работы метод возвращает число найденных в строке арабских цифр.
- In order to configure the project for the lab1 follow this tutorial: walkthrough-creating-and-using-a-dynamic-link-library-cpp
Требуется разработать приложение или программный комплекс, обменивающийся данными по сети в формате JSON, XML или Protocol Buffers.
Сетевая игра «Пушки» для двух игроков. Игроки имеют некоторую координату на числовой прямой. Они по очереди стреляют друг в друга, выбирая угол полёта снаряда. Снаряд летит обладает некоторой массой и притягивается к земле некоторой силой. Выигрывает игрок, попавший снарядом в противника.
- Игра состоит из двух микросервисов: клиента и сервера.
- Сервер написан на TypeScript под платформу Node.js с использованием фреймворка Express.js и библиотеки "ws".
- Клиент написан на TypeScript с использованием фреймворка Angular 10; отрисовка игрового поля работает на технологии SVG.
- Соединение между клиентом и сервером осуществляется через HTTP рукопожатие, после которого соединение переходит в режим Web Socket. Данные передаются в формате JSON и парсятся средствами JavaScript на обоих концах.
- Сервер ждет пока подключатся 2 клиента и начинает раунд игры.
- Один раунд - один выстрел.
- Игроки стреляют по очереди.
- Каждый раунд сервер генерирует различное положение игроков.
- Попал - выйграл раунд, промазал - проиграл. Все просто.
Требуется добавить в предыдущий проект возможность сохранения состояния в виде периодического сохранения либо в виде функций импорта/экспорта. Выбранный формат для сериализации должен иметь схему. В проекте должен присутствовать код валидации данных, либо в самой программе при загрузке данных, либо в юнит-тестах, проверяющих корректность сохранения состояния.
Сетевая игра «Пушки» для двух игроков (продолжение).
- Теперь каждый игрок должен при входе на сервер вводить свое имя, по которому в дальнейшем собирается статистика
- Очки начисляются следующим образом: если игрок попал в оппонента, то к его очкам прибавляется 1, если промахнулся - отнимается
- Каждый игрок может видеть общий топ-5 лучших игроков за все время
- Если игрок попал в топ-5, то он может наблюдать свое имя, выделенное красным
- Статистика сохраняется в json файл, при загрузке сервер прочитывает файл и валидирует с помощью json schema
- Сообщения от клиентских приложений также валидируются с помощью json schema
- Сообщения от сервера тоже валидируются тем же способом