Что нового

Алгортмы для графов

ivanius

Знающий
Сообщения
74
Репутация
5
Если в краце - помогите теориями\псевдокодом или др. направляющими для понятия и написания следующего(уже написан бот нужно идти дальше):
1)Есть маршрут состоящий из ряда последовательных точек.
2)Всегда идем последовательно , НО можем находится в середине или даже в предпоследней точке!
3)Переписывать весь код и проверять через Select все маршруты - нет смысла, функция написанная и отлично работает

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

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

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Тут и на оффоруме где-то был рабочий пример по алгоритму дийкстры и А*
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Та их тут много, если поискать.
Вот, например
Алгоритм Дейкстры поиска кратчайшего пути в графе на примере телепортов Lineage2
;D


Добавлено:
Сообщение автоматически объединено:

переписать функцию для передачи в нее массива точек, а не одной точки, потом проверкой в цикле и запуском с этого момента

правильной дорогой идёте! imho, всё равно без этого не обойдётся.
 
Автор
I

ivanius

Знающий
Сообщения
74
Репутация
5
C2H5OH сказал(а):
Та их тут много, если поискать.
Вот, например
Алгоритм Дейкстры поиска кратчайшего пути в графе на примере телепортов Lineage2
;D


Добавлено:
Сообщение автоматически объединено:

переписать функцию для передачи в нее массива точек, а не одной точки, потом проверкой в цикле и запуском с этого момента

правильной дорогой идёте! imho, всё равно без этого не обойдётся.



что-то в этом роде и хочу сделать, только хочу все-таки наверное пойти дальше и сделать по типу вейпоинтов с указанием точки старта и точки конца, а программа пусть считает, вроде бы ничего сложного нету, но не знаю как эти вейпоинты отмечать если есть повороты к примеру есть 3 вейпоинта, обычный прямоугольный треугольник - понятное дело что гипотенуза его короче и он выберет путь по ней, а нельзя там здание стоит (( т.е. нужно как-то их связать, но не все сижу размышляю.
Пишу сейчас на делфи с использыванием дллки автоита...
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
не знаю как эти вейпоинты отмечать если есть повороты к примеру есть 3 вейпоинта, обычный прямоугольный треугольник

Вы, очевидно, пытаетесь выбрать структуру данных, удобную для представления Вашего графа.
Я в своём примере использовал массив - матрицу переходов. Ваш треугольник вейпоинтов у меня выглядел бы примерно так
Код:
Global $aWayPoins[3][3] = [[0,10,0], _
                           [10,0,10], _
                           [0,10,0]]


Но, возможно, Вам ближе какая-нибудь другая структура, например, массив - список переходов
Код:
Global $aWayPoins[2][3] = [[1,2,10], _
                           [2,3,10]]


Вобщем, вариантов много, какой Вы выберете для использования - это Ваши собственные тараканы...
 
Автор
I

ivanius

Знающий
Сообщения
74
Репутация
5
У меня сейчас также я функции скармливаю такой массив - маршрут и она выбирает и ищет и делает все
Код:
Global $aWayPoins[3][3] = [[0,10,0], _
                           [10,0,10], _
                           [0,10,0]]

вопрос как ей обьяснить что что нужно выбирать не совсем кратчайший маршрут, а тот по которому можно реально пройти.
Сейчас представил себе вспомнил вейпоинты ботов в КС1.6 (возможно в позних тоже были), а что если сделать проще не искать вовсе маршрут, а искать ближайшую точку, тут единственное что нужен будет вектор в какую сторону искать ближайшую точку.
на самом деле у меня немного проще во 1 можно свести все к 2х мерному пространсву (3я координата рейкастом определяется) во 2х сейчас все маршруты простые - без ветвления, но хочу сделать полноценные вейпоинты.
 
Верх