Решение Практика «Путь в лабиринте»

Раздел
Программирование
Предмет
Просмотров
315
Покупок
1
Антиплагиат
Не указан
Размещена
4 Фев 2023 в 23:17
ВУЗ
УрФУ
Курс
1 курс
Стоимость
380 ₽
Файлы работы   
1
Каждая работа проверяется на плагиат, на момент публикации уникальность составляет не менее 40% по системе проверки eTXT.
docx
Практика «Путь в лабиринте»
13.8 Кбайт 380 ₽
Описание

Оригинальное решение практики «Путь в лабиринте»

На этот раз в лабиринт с сокровищами попал Жадина! Лабиринт очень старый и все свободные клетки успели покрыться зарослями. Для каждой клетки лабиринта известна её трудность — количество сил, которые потратит Жадина на прохождение зарослей этой клетки.

После каждого шага силы Жадины уменьшаются на трудность клетки, в которую он шагнул. Когда силы заканчиваются, Жадина останавливается.

Посмотреть на лабиринты можно запустив проект:

  • Выбрать лабиринт можно в меню States слева сверху.
  • Цифры и яркость на клетках — это трудность.

Жадина хочет узнать, какое минимальное количество сил ему нужно потратить чтобы дойти от текущей клетки до какого-то из сундуков. Причём, он ещё не решил, какой из сундуков он хочет посетить, так что Жадина хочет узнать кратчайшее расстояние до каждого из сундуков.

Помогите Жадине найти кратчайшие пути до каждого из сундуков!

Для того, чтобы сдать задачу, в файле DijkstraPathFinder.cs реализуйте метод GetPathsByDijkstra. Ему на вход поступают: лабиринт, начальная позиция Жадины, список целей — клеток, до которых нужно найти кратчайшие пути. Он должен возвращать пути до всех целей в виде IEnumerable в порядке увеличения трудности пути до них. При этом вычислять пути он должен лениво, то есть не вычислять пути до далёких сундуков и не обрабатывать весь лабиринт, пока это не запросили из IEnumerable.

Описание лабиринта передаётся в метод в объекте типа State:

  • в поле CellCost находится двумерный массив трудностей всех клеток (0 означает стену).
  • есть методы, которые помогут проверить, что какая-то клетка является стеной или находится внутри лабиринта.
  • там же есть свойство Chests, но в данной задаче вместо него используйте список целей, переданный в метод аргументом.

Все тесты в классе DijkstraPathFinder_Should должны завершиться успехом.

Вам подходит эта работа?
Похожие работы
C#
Лабораторная работа Лабораторная
2 Ноя в 14:17
11 +11
0 покупок
C#
Контрольная работа Контрольная
7 Сен в 20:07
27
0 покупок
C#
Курсовая работа Курсовая
4 Сен в 14:31
34
0 покупок
C#
Курсовая работа Курсовая
2 Сен в 19:55
43
0 покупок
Другие работы автора
Интеллектуальные информационные сети
Дипломная работа Дипломная
17 Сен в 19:24
24
0 покупок
C#
Задача Задача
4 Фев 2023 в 23:15
204
0 покупок
Основы программирования
Задача Задача
4 Фев 2023 в 23:13
269
1 покупка
Экономика
Курсовая работа Курсовая
29 Янв 2023 в 16:00
151
1 покупка
Менеджмент
Курсовая работа Курсовая
29 Янв 2023 в 15:58
184 +1
0 покупок
Экономика
Курсовая работа Курсовая
29 Янв 2023 в 15:56
154 +1
0 покупок
Юриспруденция
Курсовая работа Курсовая
29 Янв 2023 в 15:55
154 +1
0 покупок
Менеджмент
Курсовая работа Курсовая
29 Янв 2023 в 15:53
185 +2
2 покупки
Юриспруденция
Курсовая работа Курсовая
29 Янв 2023 в 15:51
157
2 покупки
Экономика
Курсовая работа Курсовая
29 Янв 2023 в 15:48
213 +2
2 покупки
Социология
Курсовая работа Курсовая
29 Янв 2023 в 15:46
186
0 покупок
Юриспруденция
Курсовая работа Курсовая
29 Янв 2023 в 15:43
120 +1
1 покупка
История
Реферат Реферат
29 Янв 2023 в 15:36
120
0 покупок
Макроэкономика
Курсовая работа Курсовая
29 Янв 2023 в 15:33
128
0 покупок
Приборостроение
Дипломная работа Дипломная
29 Янв 2023 в 15:29
166
0 покупок
Психология
Дипломная работа Дипломная
29 Янв 2023 в 15:15
127 +1
0 покупок
Экономика
Реферат Реферат
29 Янв 2023 в 15:11
108
0 покупок
Медицина
Курсовая работа Курсовая
29 Янв 2023 в 15:09
132
1 покупка
Темы журнала
Показать ещё
Прямой эфир