Ну, что такое расчёт поездных маршрутов между светофорами, думаю, каждый знакомый с z6 знает. Кроме того, существует правила ручного создания таких маршрутов - PathRule и ей подобные. Реальные диспетчеры, конечно, строят маршруты между парками (кусками пути, ограниченными светофорами/изостыками/стрелками), но, учитывая что любой парк, из которого возможен приём/отправление поезда, ограничен с 2х сторон светофорами (входные/выходные/маршрутные), в приближении игры будем строить маршруты именно между светофорами.
В данном случае собираюсь сделать гибрид из "архива маршрутов", генерируемого автоматически, и набора правил, позволяющих собирать маршруты (и, возможно, браузера типа z7 ДНЦ ).
В данном случае часть первая полностью готова - создана система, которая
а) собирает информацию о объектах, окружающих каждую стрелку и определяет положение последней - какой объект в пошёрстном направлении, какой справа, какой слева (без такой базы постройка маршрутов возможна - пример z6 - но тогда теряется перспектива поиска маневровых маршрутов во время игры, когда стрелки переводить нельзя). Кроме того, такая база позволяет помечать стрелки как "занятые", "готовящиеся к постройке по ним маршрута", "свободные" и т.п.
б) собирает информацию о всех поездных светофорах сигнализации z7 на карте (при этом сортирует их по принадлежности к станционному контроллеру, т.е. станции): их имя и тип.
в) согласно указаниям пользователя в меню:
1) показывает весь список поездных светофоров выбранной станции
2) сортирует светофоры выбранной станции по названию
3) ищет все возможные маршруты от данного светофора с любыми положениями стрелок (веер графа проходится слева направо) до следующего светофора этой или другой станции (или до первого светофора перегона)
4) показывает список маршрутов для выбранного светофора, с указанием стрелок и положений этих стрелок
г) может делиться своей базой данных с любым объектом, который это потребует (в будущем такими объектами станут команды машиниста/указания в браузере)
На данный момент "объект" выполнен в виде будки ПОНАБ, потому такое и название темы
. Но в дальнейшем, из-за трудности с поиском этой будки, надо будет переводить всё это в правило, вот это у вас и хочу спросить - надо не надо?
Выглядит сия будочка после инициализации
Время расчёта всех стрелок карты Москва-Нара - около 30 секунд,
время расчёта ВСЕХ поезных маршрутов Москвы-Киевской, Москвы-Сортировочной и Бекасово-Сортировочного - менее 15 минут. В процессе расчётов имеется возможность определить их текущий процент выполнения (правда с некоторой задержкой)