|
|
Опции темы | Опции просмотра |
24.09.2010, 01:43 | #31 | ||
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,728
Вы сказали Спасибо: 1,426
Поблагодарили 2,388 раз(а) в 1,339 сообщениях
|
Цитата:
1) из базы данных "маршруты светофора N станции Х" создаётся подбаза "маршруты от светофора N до светофора K по станции Х" или "маршруты от светофора N станции Х до светофора K по станции Х2". Сортируется по приоритетам, если таковые были введены. 2) если имеется первый вариант, то: а)если заданный номер маршрута больше, чем маршрутов всего, ждём 15 секунд, затем смотрим маршрут №1, далее в одном потоке (т.е. для виртуальной машины скриптов "линейным алгоритмом") проходит проверка занятости стрелокЕсли второй вариант: а) проверяется направление перегона по тегу во входном светофоре следующей станциидалее... когда стрелка освобождается, метка "занято" у неё снимается, ищутся все построенные маршруты с ней, светофорам, с которых эти маршруты были приготовлены, щлются сигналы о принудительном закрытии. Если освобождённая стрелка последняя у маршрута, то он убирается из стека. Вроде так... Цитата:
Если же попытаться расталкивать составы по станциям, рассчитывая им пути на N станций вперёд, то вероятность коллизий в конце концов только увеличивается (из-за уменьшения количества свободных путей). Вывод: для однопутки наилучшее решение "пакет туда-пакет обратно", причём навстречу пакетам продвигаются по 1 поезду на перегон, с долгими ожиданиями. И размеры пакетов вполне можно оптимально рассчитывать. (не зря американцы делают сверхдлинные составы - у них навстречу пакетам почти нет движения) Последний раз редактировалось TRam_; 24.09.2010 в 01:57. |
||
01.01.2007, 12:00 | |
Яndex
Спонсор
Регистрация: 01.01.2007
Сообщения: 500
Реклама показывается изредка по случайному принципу |
РЕКЛАМА
|
24.09.2010, 02:04 | #32 | ||
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,728
Вы сказали Спасибо: 1,426
Поблагодарили 2,388 раз(а) в 1,339 сообщениях
|
Цитата:
Цитата:
Последний раз редактировалось TRam_; 24.09.2010 в 02:10. Причина: oфф trainzup открылся :) |
||
24.09.2010, 10:10 | #33 | ||||
Матёрый пользователь
Регистрация: 30.08.2007
Адрес: Московская область, 36км
Сообщений: 3,620
Вы сказали Спасибо: 263
Поблагодарили 304 раз(а) в 172 сообщениях
|
Цитата:
Цитата:
Цитата:
Цитата:
По архитектуре: никак будок. Сделай его в виде правила. |
||||
24.09.2010, 13:52 | #34 | |
Матёрый пользователь
|
Цитата:
У светофоров расчитаны маршруты, так? У нас есть всего лишь несколько вариантов поведения: 1) прибытие на станцию, зная на какой путь; 2) прибытие на станцию на путь из группы (нам всё равно куда прибывать, лишь бы грузовым не залезть в пассажирский парк, а пассажирским - в грузовой); 3) отправление со станции; 4) маневры. По первому случаю. Отыскиваем тот самый маршрут, который соответствует заданному направлению Н - Н1. Проверяем стрелки между этимми светофорами на занятость. Хотя бы одна занята, тогда Н - красный, стоим, курим бамбук до следующей проверки. Все стрелки свободны и открылся светофор (путь не занят другим поездом) - welcome to Н1! По второму случаю. Хватаем первый маршрут из группы (это должна быть команда такая "собрать маршрут из группы"). Далее то же, что и в первом случае, только бамбук будем курить, когда проверим последний маршрут. Через время опять по кругу. Третье. С отправлением проще. Там единственный вариант и его проверяем до умопомрачения. Но! Если это однопутка, или идём на неправильный, то тоже, что у тебя во втором варианте по пунктам а), б) и в). Маневры - это отдельная эпопея там черт ногу может сломать, так что об этом можно как-нить отдельно. Но! Меня смущают эти 5 минут везде. С одной стороны вроде и не надо бы особо часто ломиться в закрытую дверь, а с другой стороны хвост встречного спустя 5 секунд после проверки прошмыгнул обратный ему выходной (или когда входной проезжает перегон считается свободным?), а мы продолжаем ещё целых 5 минут курить бамбук. Думаю, оптимально будет 1-2 минуты. P.S. Выражение "курить бамбук" применяю исключительно к железнодорожному транспорту. Ехал как-то на электричке в Саратовской губернии. На станции - остановка. Только остановился, открыл двери и тут по громкой связи:"Стоим, курим бамбук. Минут 20, выходной - закрыт!" |
|
24.09.2010, 14:10 | #35 | ||
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,728
Вы сказали Спасибо: 1,426
Поблагодарили 2,388 раз(а) в 1,339 сообщениях
|
Цитата:
По поводу групп...Ты имеешь в виду "если маршрут на один путь (станции/перегона) не собрался, собираем на другой"? Возникает вопрос: а в следующей команде как мы будем узнавать, с какого пути маршрут отправления/приёма создавать? Или правило "поискать маршрут отправления для поезда ** по станции ***Х " тоже надо? Цитата:
|
||
24.09.2010, 17:01 | #36 | ||
Матёрый пользователь
|
Цитата:
Цитата:
И таким образом реализовать "маршруты от светофора N станции Х до светофора K по станции Х2" |
||
24.09.2010, 17:07 | #37 | ||
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,728
Вы сказали Спасибо: 1,426
Поблагодарили 2,388 раз(а) в 1,339 сообщениях
|
Цитата:
я честно не знаю, получится или нет. Ибо шаг первый -постройка элементарных маршрутов от одного светофора о другого, шаг второй - постройка любого возможного маршрута из списка, и шаг 3 - постройка любого возможного маршрута от светофора впереди поезда (со списком свтофоров, "обязательных" для прохождения). Значит, по поводу маркеров... Прийдётся их логику изучать . Цитата:
Последний раз редактировалось TRam_; 24.09.2010 в 17:16. |
||
24.09.2010, 20:40 | #38 |
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,728
Вы сказали Спасибо: 1,426
Поблагодарили 2,388 раз(а) в 1,339 сообщениях
|
Эх, а будку-то в правило превратить не удаётся... Бука умеет аакуратно выделять под себя память, а правило нет (в результате трейнз выбивает в процессе сортировки светофоров и сборки маршрутов уже который раз ). В то же время с правилом удобнее: не надо лазить за окошком за пол карты ...
Видимо прийётся делать и будку, и "правило-паразит" этой будке . |
24.09.2010, 20:51 | #39 |
Матёрый пользователь
|
Ну это то всё хорошо. Вроде как с поездными более-менее понятно. TRam, я как-то раньше сказал, что о маневровых - потом. (со вздохом) Давай сейчас это "потом" и откроем. Как ты думаешь маневровые маршруты считать? Посмотри на БМО от Tramwayz. ст. Бекасово. Там же черт ногу сломит! А всё должно работать, тем более, если он делал всё это по ТРА.
TRam, а ты часто Главный контроллер ищешь? На БМО как-то однажды хотел его найти, дабы все светофоры сразу переинициализировать, но так и не нашёл. Ну и? Сигналка там просто пыщет здоровьем! Так и здесь. Один раз поставил, настроил - забыл о его существовании. Так что по этому поводу, думаю, заморачиваться не стоит. Последний раз редактировалось NickLon; 24.09.2010 в 20:59. |
24.09.2010, 21:02 | #40 | |
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,728
Вы сказали Спасибо: 1,426
Поблагодарили 2,388 раз(а) в 1,339 сообщениях
|
Цитата:
Собирать маневровый маршрут я собирался уже во время игры, перебирая по станции все возможные пути (стрелки при этом естественно не переводятся). Это вызовет тормоза, но созавать кучу маршрутов размером в 50 мегабайт совсем неохота. Последний раз редактировалось TRam_; 24.09.2010 в 21:08. |
|
24.09.2010, 21:22 | #41 | |
Матёрый пользователь
Регистрация: 30.08.2007
Адрес: Московская область, 36км
Сообщений: 3,620
Вы сказали Спасибо: 263
Поблагодарили 304 раз(а) в 172 сообщениях
|
Цитата:
|
|
24.09.2010, 21:46 | #42 | |
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,728
Вы сказали Спасибо: 1,426
Поблагодарили 2,388 раз(а) в 1,339 сообщениях
|
Цитата:
А правило будет, я уж говорил, что оно будет дополнительным внешним интерфейсом к будке. |
|
24.09.2010, 22:18 | #43 |
Матёрый пользователь
|
А если пересчитывать маневровые маршруты не сразу по всей карте, а в пределах только станции? Так постепенно и пересчитать все станции. К тому же, элементарные маневровые маршруты гораздо короче поездных, а значит, имеют в себе гораздо меньше стрелок, что должно облегчить пересчёт.
И ещё: как планируется алгоритм сборки составных маршрутов? |
24.09.2010, 22:23 | #44 | |
Матёрый пользователь
Регистрация: 18.02.2008
Сообщений: 8,728
Вы сказали Спасибо: 1,426
Поблагодарили 2,388 раз(а) в 1,339 сообщениях
|
Цитата:
Алгоритм составных пока не придумал - надо вначале хоть элементарные сделать. |
|
24.09.2010, 23:09 | #45 | |
Матёрый пользователь
|
Цитата:
Что-то памяти многовато требуется. Если у тебя есть имена всех стрелок, то зачем нужен массив ссылок? Есть же Router.GetObject(string)? |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Система для обдувки стрелок | Lex73 | TrainZ - Маршруты и сценарии | 2 | 17.01.2010 15:28 |
Система сообщений | TRam_ | TrainZ — Об игре | 3 | 09.08.2009 17:21 |
ЧС2-система | ЛЖД | MSTS - Подвижной состав | 21 | 16.04.2009 21:43 |
Не запускается игра (рестартует система) | Beholder | MSTS - Об игре | 7 | 28.03.2009 21:55 |
Что это? |