Народ! Помогите! Сколько ни читаю всякие статьи по сабжу, никак не соображу как это написать!
Плиз, киньте сюда полностью работающий код алгоритма поиска пути на С++.
Вообще есть конкретная задача, но не очень хочу чтоб за меня кто-то полностью все сделал. На осознание продвинутых алгоритмов мне видимо просто не хватает образования (9 класс) так что очень прошу помочь!
Здравствуйте, HeavyWave, Вы писали:
HW>Плиз, киньте сюда полностью работающий код алгоритма поиска пути на С++.
HW>Вообще есть конкретная задача, но не очень хочу чтоб за меня кто-то полностью все сделал.
Полностью работающий код, решающий задачу, которую ты не говоришь
Давай наоборот, пиши конкретно, что тебе надо, и кто-нибудь напишет идею алгоритма.
Здравствуйте, Pushkin, Вы писали:
P>Полностью работающий код, решающий задачу, которую ты не говоришь
P>Давай наоборот, пиши конкретно, что тебе надо, и кто-нибудь напишет идею алгоритма.
Идея алгоритма есть. В том то и дело, что нужен полный работающий код, а не идея.
Вобщем есть поле 9*9 с препятсвиями. Надо найти путь (желательно кратчайщий) от А(x;y) до Б(x1;y1).
Путь должен сохранится в массиве структуры {int x;int y}. вроде все
Здравствуйте, HeavyWave, Вы писали:
HW>Здравствуйте, Pushkin, Вы писали:
P>>Полностью работающий код, решающий задачу, которую ты не говоришь
P>>Давай наоборот, пиши конкретно, что тебе надо, и кто-нибудь напишет идею алгоритма.
HW>Идея алгоритма есть. В том то и дело, что нужен полный работающий код, а не идея.
HW>Вобщем есть поле 9*9 с препятсвиями. Надо найти путь (желательно кратчайщий) от А(x;y) до Б(x1;y1).
HW>Путь должен сохранится в массиве структуры {int x;int y}. вроде все
А если сделать поиск в Интернете? Там полно алогритмов.
Для простого случая, когда стоимость переходов между соседними клетками одинакова, используется "волновой алгоритм". Краткий поиск в
www.google.com (выбрать "поиск в русском") по словам
волновой+алгоритм
даёт много документов, в первом же программные примеры на С и Паскале.
Для более сложных случаев с разной стоимостью переходов используются алгоритм Дийкстры (Dyjkstra), A* и др. Это нужно напр., в играх где скорость движения героя зависит от типа местности. Не знаю примера кода для алг. Дийкстры, но алгоритм простой, можно легко запрограммировать по описанию. Я, когда мне понадобилось, запрограммировал его за полчаса (на C#, тебе пример не подойдёт). Поиск в Google по слову "Дийкстры" имея ввиду алгоритм Дийкстры) опять дал ряд статей с обзором алгоритмов, в частности программный пример на С++ для алгоритма A*:
http://cs.mipt.ru/docs/comp/rus/programming/algorithms/tree_station/rpathfin.htm
Если это не устраиывает, ищи сам как я описал, алгоритмы лежат кучами.
поправка
я тут попробовал искать в
www.google.com по слову Dyjkstra, но мало что нашлось. Правильно Dijkstra
Здравствуйте, HeavyWave, Вы писали:
...
HW>Вобщем есть поле 9*9 с препятсвиями. Надо найти путь (желательно кратчайщий) от А(x;y) до Б(x1;y1).
HW>Путь должен сохранится в массиве структуры {int x;int y}. вроде все
Оно?Автор: mafiya
Дата: 03.02.03
Здравствуйте, User99, Вы писали:
U>Оно?Автор: mafiya
Дата: 03.02.03
Почти. Достойная статья. Где такие берешь: