Приготовьтесь к головной боли.
Итак, я разработал игру по исследованию космоса. Игрок начинает с одной точки, называемой узлом, выполняет сканирование, обнаруживает все подключенные узлы, а затем летит к следующему узлу. Сканирование на новые узлы и т. Д. c. В конце концов вы получите что-то вроде рисунка ниже ...
![Visualization of the node network.](https://i.stack.imgur.com/ok6Gp.png)
На рисунке показаны все узлы, которые были обнаружены игроком (но не все узлы в системе). .)
На изображении выше, игрок в настоящее время находится на узле 1019. Я пытаюсь найти способ, чтобы доставить игрока на узел 1587 (желтый) без необходимости передвигаться по одному узлу на время.
Когда узел обнаружен, обнаруженный узел добавляется в mySQL таблицу 'user_nodes'. Любые космические дорожки (линии), связанные с узлом, появляются в таблице user_lane.
Не каждый узел связан с каждым другим узлом. Связанные узлы варьируются. Пример: Узел 1587 подключается к узлу 1313, 1455, 2681, 2359. Каждый подключенный узел также имеет уникальный идентификатор космического самолёта, поэтому в этом примере Узел 1587 подключается к 2359 через космический самолет # 709. Каждый космический самолет имеет свое время в пути.
Итак, я пытаюсь выяснить, как выяснить: 1. Сколько подключенных узлов находится между 1587 и 1019. Если я могу это выяснить, я могу позволить пользователям прокладывать курсы для удаленных узлов. От этого mySQL у меня взорвется голова, поэтому я подумал, посмотрю, есть ли у кого-нибудь еще мысли.
Я уверен, что у вас возникнут вопросы:)
РЕДАКТИРОВАТЬ: Вот пример таблицы в вопросе:
![Spacelanes discovered by the user](https://i.stack.imgur.com/95ELi.png)
Зная, что кратчайший путь будет идеальным / наименьшее количество узлов.