-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReadMe.txt
More file actions
5 lines (5 loc) · 1.33 KB
/
ReadMe.txt
File metadata and controls
5 lines (5 loc) · 1.33 KB
1
2
3
4
5
Алгоритм выполнения тестового задания
1. Считывание всей необходимой информации с файла. Данную задачу выполняет функция rFile(), она возвращает всю необходимую информацию в виде ассоциативного массива.
2. Следующий шаг- преобразование информации в необходимый формат и обозначение точек старта, финиша и преград в массиве который теперь будет.
3. После чего мы уже приступаем к поиску кратчайшего пути, сначала мы с помощью функции search(). В первой части данной функции мы выполняем поиск точки финиша исходя от точки старта таким методом: мы помечаем ячейки массива насколько далеко они находятся от точки старта и заносим их в fifo, когда точки, которую мы используем за указатель заканчиваются возможные варианты хода, то мы достаем следующую точку с fifo, и выполняем это действие пока указатель не укажет на точку финиша, попутно проверяя что бы указатель не указал на преграду на точку с которой уже работал указатель или на начальную точку. Когда указатель указал на финиш, то мы начинаем двигаться в обратную сторону к старту, но выбираем только те ячейки, которые имеют самый маленький вес среди тех с которых мы выбираем делая ход, занося при этом все данные в другой массив buf.
4. Отмечаем в начальном массиве кратчайший путь в виде последовательности шагов, считаем шаги, записываем необходимую комбинацию и выводим всю необходимую информацию.