Лаюораторные работы №2-3
Вариант №9:
Сетевая игра «Команда» для двух игроков. Поле 8×8 клеток, на котором все объекты отображаются обоим игрокам. Каждый игрок управляет бойцом, который либо ходит в одном из четырёх направлений, либо стреляет в одном из четырёх направлений. При стрельбе уничтожается первый объект, находящийся в том направлении. Игроки ходят по очереди. На поле случайно генерируются враги. Если враг достигнет клетки с бойцом, то боец погибает. За ход все враги перемещаются на одну клетку в случайном направлении. Цель игроков уничтожить всех врагов. Игроки проигрывают, если оба погибают.
Описание задания:
№2
Требуется разработать приложение или программный комплекс, обменивающийся данными по сети в формате JSON.
№3 Добавьте возможность сохранения состояния в виде периодического сохранения, либо в виде функций импорта и экспорта. Выбранный формат для сериализации должен иметь схему. В проекте обязателен код валидирующий данные. Валидация должна производиться либо в программе при импорте данных, либо в юнит-тестах, проверяющих корректность сохранения состояния.
Описание алгоритма:
№2
Было реализовано клиент-серверное приложение для игры в сетевую игру "Команда". Программа последовательно предоставляет игрокам доступ к игре для выполнения своего хода: движение на одну свободную клетку в одном из четырех направлений или же выстрел в одном из четырех направлений.
Для управления персонажем используются следующие кнопки WASD - движение, стрелки - стрельба.
На поле стенку обозначает символ решетки(#), игрока - собака (@), врга - амперсанд (&), пустую клетку - точка (.).
№3:
В программу было добавлено сохранение текущего состояния игры в виде сохранения .json файла. Также была добавлена валидация .json при загрузке игры из файла. Json схема находится в "SaveDataJSchema.json" файле.