/TiMP_and_PL_course

Репозиторий, содержащий задания и учебные материалы по курсам ТиМП и ЯП кафедры "Защита информации" в КФ МГТУ

Задание

Ваша группа делится на несколько команд по три-четыре человека для разработки своего проекта по вариантам. Разработка ведется с использованием системы контроля версий git. Каждый участник команды ведет разработки в своей ветке (или ветках), либо команды использует любую методологию ветвления (github-flow, git-flow, или что-то своё). Весь проект должен быть покрыт unit-тестами и на защите нужно быть готовым продемострировать прохождение всех тестов.

Требования

  • Весь проект должен быть написан с использованием парадигмы ООП.
  • Предпочитаемые языки: C++, C#, Python, Java/Kotlin.
  • Покрытие тестами всей игровой логики. Вывод на дисплей и все служебные методы покрываются тестами по желанию.
  • Для покрытия тестами допустимо использовать любую известную библиотеку unit тестирования для выбранного языка.
  • Кроме написания проекта по выданному варианту от вашей команды необходим репозиторий git, размещенный где угодно (гитхаб, битбукет или их аналоги). Помимо код-ревью будет проверятся, КАК вы разрабатывали свой проект (бранчи репозитория, коммиты и т.п.).
  • Все проекты должны обладать меню, системой сохранения и загрузки, экраном выбора уровня (если это подрузомевается игрой)
  • Визуальное и аудио оформление приложения выполняется по желанию

Ограничения

Запрещены к использованию всякие инструменты для создания игр: GameMaker Studio, Unity, Godot, GDevelop, Unreal Engine и т.п.

Их применение возможно только по согласованию с двумя преподавателями (шансы минимальны :) ).

Варианты проектов

  1. 2048
  2. Блэкджек + ИИ для игры с компьютером
  3. Сетевой морской бой + режим наблюдателя для неограниченного числа зрителей
  4. Аналог Gravity Defied (достаточно пары уровней)
  5. Простейшая rogue-like игра
  6. Raytracing шутер
  7. Платформер, аля Митбой
  8. Платформер, аля Марио
  9. Змейка с конструктором уровней (реализовать в виде пункта меню без запуска дополнительных окон)
  10. Свой вариант (нужно согласование)