Форум Trainsim  

Вернуться   Форум Trainsim > Auran TrainZ > TrainZ - Маршруты и сценарии

 
 
Опции темы Опции просмотра
Старый 24.09.2010, 01:43   #11
TRam_
Матёрый пользователь
 
Аватар для TRam_
 
Регистрация: 18.02.2008
Сообщений: 8,717
Вы сказали Спасибо: 1,424
Поблагодарили 2,377 раз(а) в 1,330 сообщениях
TRam_ стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Хм, "переведи..." (с) "Москва слезам не верит"
имеется глобальная база данных, в которых стрелка может быть помечена либо как занятая, либо как свободная. Сборка маршрута по идее должна проходить так (заодно и для себя напишу)

1) из базы данных "маршруты светофора N станции Х" создаётся подбаза "маршруты от светофора N до светофора K по станции Х" или "маршруты от светофора N станции Х до светофора K по станции Х2". Сортируется по приоритетам, если таковые были введены.
2) если имеется первый вариант, то:
а)если заданный номер маршрута больше, чем маршрутов всего, ждём 15 секунд, затем смотрим маршрут №1, далее в одном потоке (т.е. для виртуальной машины скриптов "линейным алгоритмом") проходит проверка занятости стрелок
б) проверяется следующая стрелка за тем светофором, занята ли она, и если занята, то не направлена ли на нас. Если направлена на нас и занята, увеличиваем номер маршрута на 1, переходим к пункту а)
в) Отсылаем светофору сообщение на предоткрытие. Ждём 0.5 секунды. После ожидания проверяем положения стрелок. Если они были переведены, увеличиваем номер маршрута на 1, переходим к пункту а)
г) Проверяем показание светофора. Если оно красное, убираем метки о занятости ,увеличиваем номер маршрута переходим к пункту а)
Если второй вариант:
а) проверяется направление перегона по тегу во входном светофоре следующей станции
б) если он повёрнут не на нас, посылаем сообщение о переключении перегона. Ждём подтверждения о его переключении, если такового не приходит за 0.4 секунды, ждём 5 минут, и переходим к пункту а)
в) проверяем положение стрелок, если все свободны, вписываем их занятость, ждём 0.5 секунд. Если не свободны, переходим на следующий номер маршрута, и к пункту а)
г) проверяем положение стрелок (если что-то случилось с положением, след. номер, переход к а), если ничего не случилось, переводим стрелки, открываем светофор, ждём 1 секунду
д) если светофор не открывается, убираем метки о занятости, переходим к следующему маршруту
далее...

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

Вроде так...


Цитата:
Если в одну сторону на перегон отправляется пакет
с другого конца карты тоже может отправится другой пакет (причём не выполнено правило о прохождении пакета), то на одной из станций вполне может случиться коллизия.
Если же попытаться расталкивать составы по станциям, рассчитывая им пути на N станций вперёд, то вероятность коллизий в конце концов только увеличивается (из-за уменьшения количества свободных путей). Вывод: для однопутки наилучшее решение "пакет туда-пакет обратно", причём навстречу пакетам продвигаются по 1 поезду на перегон, с долгими ожиданиями. И размеры пакетов вполне можно оптимально рассчитывать. (не зря американцы делают сверхдлинные составы - у них навстречу пакетам почти нет движения)

Последний раз редактировалось TRam_; 24.09.2010 в 01:57.
TRam_ вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Система для обдувки стрелок 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


Текущее время: 23:28. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim
TopList Нажми для появления дома Trainsim на карте Intermap
Что это?