Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Нужна готовая функция на C++, как указано ниже (переменные не обязательно писать кириллицей).

Платформа windows visual studio 2010.

Можно применять STL. Если вы используете какие то сторонние библиотеки для работы с графами, то обязательно предварительно сообщите об этом.

Если стоимость проекта занижена, то сообщите об этом.

1) Это сама матрица

// матрица клеток где ряд-столбец. Если значение клетки меньше или равно нулю, то клетка непроходима, если больше то проходима и какова стоимость прохода.

int ** matrix;

// пример инициализации

matrix[0][1]=0; // нет прохода

matrix[0][2]=1; // самая быстрая клетка

matrix[0][3]=5; // медленная клетка

...

2) Поиск должен вестись как по 4 так и 8 направлениям (должна быть возможность выбора либо только горизонтальный-вертикальный, либо еще и по диагонали).

3) обязательно сообщите имя алгоритма и предполагаемое время выполнения.

4) Вот объявление функции

// matrix_ уже инициализована.

// готовый_путь - сюда должен попасть путь. В pair соответственно первый элемент ряд , второй столбец.

template

bool find_path(index_ старт_ряд , index_ старт_столбец , index_ конец_ряд , index_ конец_столбец , index_ всего_рядов_карты , index_ всего_столбцов_карты ,index_ ** matrix_ , std::vector> & готовый_путь);

{}

То есть функция должна на основе известных, передаваемых параметров, рассчитать последний параметр.

5) (желательно но не обязательно) готовый_путь должен возвращать путь даже в случаи, если на указанную клетку попасть нельзя, вместо этого он возвращает путь до ближайщих к цели доступных клеток.

6) Если не совсем понятно, что требуется то обязательно сообщите.

12 лет назад
kotor
35 летРоссия
16 лет в сервисе
Был
3 года назад