Как решить задачу по нахождению кратчайшего маршрута между двумя точками?

Есть задача закончить функцию и условие.

  • Для реализации, нельзя использовать сторонние библиотеки, которые предоставляют алгоритм расчета кратчайшего пути.
  • Набор и структуру входных данных функции minWalk нельзя изменять, задача реализовать функцию а не менять ее.

Описание

Вам дается квадратная сетка с обычными . и заблокированными X ячейками. Ваша игровая фигура может перемещаться по любой строке или столбцу или диагонали, пока не достигнет края сетки или заблокированной ячейки. Учитывая сетку, начальную и конечную позиции, определите количество ходов, чтобы добраться до конечной позиции.

Например

Дана сетка:

.X.

.X.

...

Система координаты для данной сетки:

0.0 0.1 0.2

1.0 1.1 1.2

2.0 2.1 2.2

Начальна позиция 2.1 (отсчет идет с верхнего левого края сетки 0.0) Конечная позиция 0.2

Путь движения между точками: (2.1) -> (1.2) -> (0.2) Ответ: необходимо выполнить 2 шага.

Задача

Завершите выполнение функции в редакторе. Функция должна вывести целое число, обозначающее минимальное количество шагов для перехода от начальной позиции к конечной. Ограничения

Длина сетки > 1 и < 100 Координата начальной и конечной точки входит в предоставленную сетку.

function minWalk(gridList, startX, startY, endX, endY) {
        // TODO
    return '';
}

const result = minWalk(
  [
    '.X.',
    '.X.',
    '...',
  ], 
  2, 1,
  0, 2
);

$('#res').text(result);
body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#banner-message {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  transition: all 0.2s;
  margin: 0 auto;
  width: 300px;
}
<div id="banner-message">
  <p id="result"></p>
</div>


Ответы (0 шт):