Skip to content
This repository has been archived by the owner on Jan 17, 2021. It is now read-only.

alvedder/pt-labs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Programming Technologies Labs

Ведерников & Гурлина 6408-010302D

Лабораторная №1

Задание

Требуется реализовать динамическую библиотеку, обладающую заданной функциональностью, а также отдельное приложение с пользовательским интерфейсом, использующее эту динамическую библиотеку и позволяющее пользователю воспользоваться её функциональностью.

Вариант №19

Подсчёт количества арабских цифр, содержащихся в заданной строке символов.

Описание алгоритма

Метод библиотеки CountDigits принимает на вход строку, после чего пробегает в цикле по каждому символу строки, проверяя, является ли он арабской цифрой, после чего увеличивает счетчик на единицу если символ является цифрой или сразу переходит к следующему. В конце работы метод возвращает число найденных в строке арабских цифр.


Useful information

Лабораторная №2

Задание

Требуется разработать приложение или программный комплекс, обменивающийся данными по сети в формате JSON, XML или Protocol Buffers.

Вариант №19

Сетевая игра «Пушки» для двух игроков. Игроки имеют некоторую координату на числовой прямой. Они по очереди стреляют друг в друга, выбирая угол полёта снаряда. Снаряд летит обладает некоторой массой и притягивается к земле некоторой силой. Выигрывает игрок, попавший снарядом в противника.

Техническое описание игры

  • Игра состоит из двух микросервисов: клиента и сервера.
  • Сервер написан на TypeScript под платформу Node.js с использованием фреймворка Express.js и библиотеки "ws".
  • Клиент написан на TypeScript с использованием фреймворка Angular 10; отрисовка игрового поля работает на технологии SVG.
  • Соединение между клиентом и сервером осуществляется через HTTP рукопожатие, после которого соединение переходит в режим Web Socket. Данные передаются в формате JSON и парсятся средствами JavaScript на обоих концах.

Правила игры

  • Сервер ждет пока подключатся 2 клиента и начинает раунд игры.
  • Один раунд - один выстрел.
  • Игроки стреляют по очереди.
  • Каждый раунд сервер генерирует различное положение игроков.
  • Попал - выйграл раунд, промазал - проиграл. Все просто.

Лабораторная №3

Задание

Требуется добавить в предыдущий проект возможность сохранения состояния в виде периодического сохранения либо в виде функций импорта/экспорта. Выбранный формат для сериализации должен иметь схему. В проекте должен присутствовать код валидации данных, либо в самой программе при загрузке данных, либо в юнит-тестах, проверяющих корректность сохранения состояния.

Вариант №19

Сетевая игра «Пушки» для двух игроков (продолжение).

Описание обновления

  • Теперь каждый игрок должен при входе на сервер вводить свое имя, по которому в дальнейшем собирается статистика
  • Очки начисляются следующим образом: если игрок попал в оппонента, то к его очкам прибавляется 1, если промахнулся - отнимается
  • Каждый игрок может видеть общий топ-5 лучших игроков за все время
  • Если игрок попал в топ-5, то он может наблюдать свое имя, выделенное красным

Техчасть:

  • Статистика сохраняется в json файл, при загрузке сервер прочитывает файл и валидирует с помощью json schema
  • Сообщения от клиентских приложений также валидируются с помощью json schema
  • Сообщения от сервера тоже валидируются тем же способом

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published