|
Лабораторная работа 6. Проект на Python
Цель: освоение инструментария для языка программирования Python.
В рамках проекта необходимо реализовать приложение по навигации робота на языке программирования Python.
Приложение состоит из двух модулей: модуль построения лабиринта и модуль движения робота в лабиринте.
Модуль построения лабиринта должен в замкнутом пространстве (прямоугольной комнате из клеток) заданного размера выполнить расстановку перегородок (стен).
Модуль построения лабиринта не должен предоставлять доступ ко всему лабиринту, а только сообщать о перегородках заданной клетки.
Модуль движения робота путем опроса смежных ячеек (клеток) построить маршрут из точки А в точку Б или сообщить что маршрута нет.
Примечания:
- Для кодирования перегородок рекомендуется использовать битовое представление числа: 0 - в ячейке нет стен, 1 - стена внизу (0001b), 2 - стена слева (0010b), 4 - стена вверху (0100b), 8 - стена справа (1000b).
Тогда для ячейки с перегородками справа и слева модуль построения лабиринта сообщит код 10 (1010b).
- Рекомендуется на каждом шаге маршрута робота сохранять альтернативы для возврата из тупика.
- Тема проекта может быть изменена по согласованию с преподавателем.
Необходимо выполнить следующий перечень задач:
- Создать проект на gitlab.
- Отключить доступ к защищенной ветке main (Настройки -> Репозиторий -> Защищенные ветки -> Разрешено отправлять и сливать -> No one).
- Обсуждение (issue) -> запрос на слияние 1 -> реализовать код модулей.
- Обсуждение (issue) -> запрос на слияние 2 -> подготовить план модульного тестирования.
- Обсуждение (issue) -> запрос на слияние 3 -> настроить ci/cd со следующими заданиями (jobs):
- "unit_tests": запуск модульных тестов с помощью библиотек pytest/unittest;
- "lint": запуск статического тестирования с помощью библиотеки pylint (запускается после успешных модульных тестов);
- "scube": отправка кода на сервер статического анализа sqube.cs.petrsu.ru (запускается после успешных модульных тестов);
- "pages": публикация отчета о покрытии кода тестами (запускается после успешных модульных тестов).
- Обсуждение (issue) -> запрос на слияние 4 -> реализовать код тестов.
- Обсуждение (issue) -> запрос на слияние 5 -> исправить найденные ошибки, добавить бэйджи в README.md.
- Проверить:
- Наличие кода модуля и тестов в репозитории;
- Наличие всех задач и их выполнение в правильной последовательности;
- Наличие бейджей с результатами сборки, покрытия кода тестами и метрик Sonarqube;
- Наличие отчета о покрытии кода тестами;
- Наличие данных в sqube.cs.petrsu.ru.
- Сдать лабораторную работу преподавателю и ответить на вопросы.
Дополнительная литература
|