лабораторная 3 / лабораторная 3
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра «Математическая кибернетика и информационные технологии»
Дисциплина «Кроссплатформенное технологии программирования»
Лабораторная работа 3
Выполнил:
студент группы БСТ2104
Проверил:
Москва, 2023 г.
Цель работы: реализовывать функционал для Алгоритма A* («A star»).
Задача №1: изменить классы Location и AStarState.
Ход работы: Доработаем класс Location, реализовав два метода: equals() и hashcode().
Рисунок 1 – Реализация методов equals() и hashcode().
Перед началом разработки методов, добавим два (нестатических) поля в класс AStarState с таким типом, одно для "открытых вершин" и другой для "закрытых вершин".
Рисунок 2 – Добавление полей в класс AStarState.
После создания и инициализации полей, реализуем следующие методы в классе AStarState:
public int numOpenWaypoints();
public Waypoint getMinOpenWaypoint();
public boolean addOpenWaypoint(Waypoint newWP);
public boolean isLocationClosed(Location loc);
public void closeWaypoint(Location loc).
Рисунок 3 – Реализация метода public int numOpenWaypoints()
Рисунок 4 – Реализация метода public Waypoint getMinOpenWaypoint()
Рисунок 5 – Реализация метода public int numOpenWaypoints()
Рисунок 6 – Реализация метода public boolean addOpenWaypoint(Waypoint newWP)
Рисунок 7 – Реализация метода public void closeWaypoint(Location loc)
Запустим программу в классе AStarApp и попробуем найти короткий путь из одной точки в другую.
Рисунок 8 – Результат работы программы
Вывод: реализовали функционал для Алгоритма A* («A star»).