Задний ход поездов и отцепляемые вагоны

OpenTTD - современная игра, клон Transport Tycoon Deluxe с открытым исходным кодом, написанный на C и С++. Содержит ряд ключевых улучшений и возможность игры по сети. На данный момент это главное направление развития игры.

Модераторы: eraserkry, Mihamster, Smoky555, Группа модераторов

Сообщение Quark » Чт янв 04, 2007 11:08

Совсем ушли от темы :) И я не понял половины слов в предыдущем посте :) («Коммунарка», «сканировщик», «Сионистских языков», «Лейланды») ;)
Можно ссылочку на описание языка?
Насчёт новых ходов без библиотек — я всегда думал, что модульное программирование и повторное использование кода (без влезания в подробности как он работает) даёт новые ходы, а особенно ООП :)
А от «;» не отказываются по вопросам совместимости и возможности разбивки строки (хотя тут имхо использование спецсимвола лучше). При наличии на одной строке нескольких операторов «;» уже не чисто эстетическая.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение kraks » Чт янв 04, 2007 13:42

Можно тогда по-подробнее про исходное предложение?

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

б) Сделать возможность локомотиву "толкать" состав.

Так?

При этом, состав отдельно от локомотива все равно закреплен за своим локомотивом. Так? Но что это дает? Если бы локомотив стал независим от состава и цеплял тот состав, который выполняет описанные мной условия выше (есть на станции, более загружен, раньше прибыл), то можно было бы организовать доставку груза с помощью 2-х составов и 1-го локомотива. Отвез один состав, вернул, поставил под погрузку, забрал другой... А в чем преимущество оставления вагонов просто? Для перецепки локомотива и организации "без разворотов"? Тогда я не понял необходимости предложения (б) про "толкание" состава... Поясни pls :D
Аватара пользователя
kraks
Президент
Президент
 
Сообщения: 889
Зарегистрирован: Вт окт 03, 2006 01:05
Откуда: Москва

Сообщение Quark » Чт янв 04, 2007 13:54

Исходное предложение было превратить все вагоны в локомотивы как сейчас есть локомотивы, перевозящие пассажиров и их можно цеплять к обычным и разделять в депо.
Эти вагоны берут характеристики у основного локомотива и в принципе могут ездить и без него, но при отцеплении они их теряют (обращают в ноль). При прицеплении нового локомотива вагоны снова берут его характеристики. Вобщем смысл превращения вагонов в локо в том, чтобы они могли стоять на рельсах отдельно от локомотива :) Может это можно и попроще сделать.
Даёт это нам то, что локомотив может привезти на станцию гружёный состав и забрать на ней другой, а пустые вагоны может локомотив поменьше отогнать и даже по другому пути. Таким образом дорогой мощный локомотив будет возить гружёные вагоны, а слабенький, но дешёвый — пустые.
Можно и под погрузку ставить, тогда станция найдёт поезд, состоящий только из вагонов с оставленным маршрутным листом, где указано сколько загружать и погрузит его, а потом локомотив гружёные вагоны и заберёт.
Сами по себе вагоны ехать не могут, т.к. после отцепления у них остаётся нулевая тяга.

Основная проблема тут разделить поезд на рельсах, а не в депо.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Quark » Чт янв 04, 2007 13:58

Можно реализовать альтернативный вариант: в депо стоит маневровый локомотив, поезд заезжает в депо и там перецепляет вагоны к маневровому локомотиву, а тот уже отвозит их на станцию. Потом происходит обратная операция. Но тут получается «чит с депо», когда в одной клетке депо оказывается бесконечное количество поездов и вагонов.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Quark » Чт янв 04, 2007 14:08

Еще было бы неплохо сделать депо, в котором видно сколько стоит поездов и свободное место ограничено, например за депо поставить специальную станцию, которая будет ограничивать депо и показывать находящиеся в нём составы, как сейчас делает harbourw_456.grf с товарами. Например одна клетка станции будет вмещать в три раза больше вагонов, чем путь аналогичной длины.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение kraks » Чт янв 04, 2007 14:46

Получается мы примерно об одном говорим )) А то я подумал, что локомотив и состав жестко связаны, даже если они разъехались ) Итого, что "хочется" :D сделать (пока без депо):

1) Изменить систему "столкновений" поездов - рассматривать "столкновение" как "прицепление", если:
а) поезд "А" - стоит, поезд "Б" - подъезжает;
б) поезд "Б" подъезжает к "А" с "правильной" (тыльной) стороны (не сбоку);
в) у поезда "А" со "сталкиваемой" стороны находится вагон, а не локомотив;
г) поезд "Б" состоит из одного локомотива, не EMU или DMU;
д) поезда "А" и "Б" имеют идентичные маршрутные листы (примечание 1: "маневровые" локомотивы не рассматриваются, примечание 2: необходимо предусмотреть что-то для синхронизации маршрутных листов).

2) Если условия "прицепления" выполнились, "объединить" поезда "А" и "Б". Тут много тонкостей: как будут выглядеть поезда по-отдельности, как именоваться, как - вместе, что будет в общем списке поездов...

3) Предусмотреть "разделение" поездов. Условия "разделения" проверяются на каждом этапе (может без точек пути и депо) маршрутного листа (тут надо подробнее продумать, ведь там же есть сякие нон-стопы и т.п.) "Разделение" реализуется, если состав (будущий поезд "А") "не готов" отправиться (и это вызвано не разгрузкой - разгрузка осуществляется достаточно быстро). Причины:
а) на станции не хватает материалов для выполнения условия погрузки;
б) на станции действует условие на время стоянки поезда (кстати, "свободные" локомотивы придется от этого бремени освобождать).

4) Если условия "разделения" выполнились, "разделить" поезд на "А" и "Б". При этом решать те же проблемы, что и в (2), в обратном порядке.

5) "Разрешить" локомотивам двигаться "задом" (не EMU и DMU - это понятно) (решить, что с "толканием" поездов, я - против, даже если и "задом", то "тянуть").

6) Сделать опцию "Разворот поездов - без разворота". Реализовать ее отслеживание.

Так я понимаю? Поправь, если где не так. :D

В рассмотренной логике не предусмотрена возможность таскать "легкое" - "слабым", а "тяжелое" - "сильным". Для этого, я так понимаю, необходимо задавать определенные условия локомотивам (тут мы уже углубляемся в написание настроек локомотивов - можно и "маневровые" делать - ура! :D ). Пока можно будет только сделать "2 состава - 1 локомотив".
Аватара пользователя
kraks
Президент
Президент
 
Сообщения: 889
Зарегистрирован: Вт окт 03, 2006 01:05
Откуда: Москва

Сообщение Quark » Чт янв 04, 2007 17:55

1) рассматривать «столкновение» как «прицепление», если оно происходит на станции, точка :)
после соединения стоящий поезд получает маршрут локомотива, тут можно ввести проверку нормальный поезд стоит или отцепленный, в первом случае можно обычное столкновение вызвать, но по условию светофоры должны проверять какой состав за ними и разрешать локомотиву проходить их и цеплять свои вагоны

2) выглядеть они будут как обычно :) отцеплённый состав будет именоваться каким-нить временным именем.

3) разделение задаётся жёстко в маршрутном листе — всё это я писал на англоязычном форуме

5) задний ход реализуется еще до вагонов, EMU/DMU не могут цепляться/отцепляться

6) не понял что-то, такое поведение сейчас происходит, оно будет опцией отключаться для придания большего реализма и полного задействования отцепляемых вагонов

7) чтобы таскать «легкое» — «слабым», а «тяжелое» — «сильным» не надо задавать специальных условий, надо просто сказать одному локомотиву «бросить вагоны на станции и уехать», а второму «ждать вагоны на станции с грузом X для вывоза на станцию Y» — станция Y или была задана у первого локомотива или просто игнорируется.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Роман » Пт янв 05, 2007 01:01

А может быть имеет смысл сделать нормальный грузовой двор, чем извращатсья над депо? Просто пустые тупиковые пути в районе станции: сколько их есть - столько поездов и влезет.
Список поездов может выглядеть так:
Магистральный локомотив 1
Магистральный локомотив 2
...
Маневровый локомотив 1
Маневровый локомотив 2
...
Набор вагонов 1
Набор вагонов 1

Возможно, имеет смысл сразу при строительстве станции закреплять за ней маневровый локомотив, с возможностью купить дополнительные.

Хотя, для того, чтобы все это реализовать, как минимум, нужно сделать нормально работающий аналог PBS, хотя и к ним тоже достаточно много нареканий.
Аватара пользователя
Роман
Начальник станции
Начальник станции
 
Сообщения: 97
Зарегистрирован: Сб июн 03, 2006 00:58

Сообщение kraks » Пт янв 05, 2007 22:15

Практически со всем согласен. Не понял про то, как "разделение" (ну и, наверное, "соединение") должно задаваться в маршрутном листе? В листе кого? Состава или локомотива? И если тольго одного из них, то как связано с другим, а если в обоих, то как отслеживать, чтобы пользователь их задал, либо как делать это автоматически?
Аватара пользователя
kraks
Президент
Президент
 
Сообщения: 889
Зарегистрирован: Вт окт 03, 2006 01:05
Откуда: Москва

Сообщение Quark » Пт янв 05, 2007 23:30

локомотива, у вагонов просто остаётся запись о следующем пункте маршрута и сколько товара грузить на станции
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Сообщение Andrey_SPb » Сб янв 06, 2007 00:33

Привет!
А если просто ввести дополнение к существующим правилам: Разворот на станции без использования маневрового локомотива /МЛ/ и с его использованием одинаковый для (скажем) 5 вагонов и менее.
Если более длинный состав, то продолжительность разворота зависит от количества вагонов, МЛ уменьшает время разворота.
Маневровый локомотив приписан к депо.
Если состав прибыл на станцию, и должен развернуться на ней, то к нему подваливает МЛ. Пока этот состав загрузится, развернется и уедет, МЛ обслуживает этот состав.
Если хочется на станции иметь 2 МЛ, делайте 2 депо.
Локомотив можно прицепить к поездам, прошедшим Точку Пути.
Andrey_SPb
Машинист
Машинист
 
Сообщения: 41
Зарегистрирован: Пт дек 15, 2006 23:38
Откуда: Санкт-Петербург

Сообщение Quark » Сб янв 06, 2007 02:24

когда будет возможность сцепки/расцепки вагонов, тогда можно уже будет думать о возможностях с маневровым локомотивом, а пока что рано еще :)
Голосуйте за фичу с вагонами и высказывайте как вы её хотите на англоязычном форуме — тогда у разработчиков будет больше желания ею заняться :)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ⓤⓐⓡⓚ ⓤⓢⓛⓞⓝ
Аватара пользователя
Quark
Президент
Президент
 
Сообщения: 628
Зарегистрирован: Пт сен 08, 2006 01:17
Откуда: Москва

Всем привет!

Сообщение papon » Чт янв 18, 2007 03:07

Что-то я тут наткнулся.
вот вам совет.
ездил когда я в деревню, видел что тут поезда творятся, я что-то сам не мог понять.
Ездит электричка и остановилась, ждем сзади еще локомотив сцепляет и тянет конце подъема. ну лана сам вышел погулять. смотрю еще один толкает к подъему.
Можно ли так подумать!
Аватара пользователя
papon
Шпалоукладчик
Шпалоукладчик
 
Сообщения: 7
Зарегистрирован: Вт янв 16, 2007 16:54
Откуда: BJIAguBoCToK

Сообщение Pk » Чт янв 25, 2007 13:27

Quark писал(а):Совсем ушли от темы :) И я не понял половины слов в предыдущем посте :) («Коммунарка», «сканировщик», «Сионистских языков», «Лейланды») ;)

1. «Коммунарка» - Ашан "Коммунарка", магазин ООО Ашан. 142770- Московская область, Ленинский р-он, Калужское ш.21 км, ТЦ Мега.
Телефон 789-89-70. Часы работы 08:30-22:00.
2. Сканировщик - работник, выполняющий сканирование товара в очереди (на ленте кассы) для ускорения прохождения покупателем кассы и => увеличения прибыли магазина. Работаем со сглюченным сканером "Symbol"
3. "Сионистские языки" - языки морфологически похожие на С.
4. Лейланды - ... Ты действительно не знаешь что это?...
Quark писал(а):Можно ссылочку на описание языка?

Наш университетский, по этому в нете ничего нет.. Да и учитывая что все умывают руки.. К 8-и летию Миллениума будет бета, если хоть кто-то не умоет =(
Quark писал(а):Насчёт новых ходов без библиотек — я всегда думал, что модульное программирование и повторное использование кода (без влезания в подробности как он работает) даёт новые ходы, а особенно ООП :)
Quark писал(а):А от «;» не отказываются по вопросам совместимости и возможности разбивки строки (хотя тут имхо использование спецсимвола лучше).
То есть ";" сохраняется только потому, что в РАННИХ весиях "А" интерпретатор не умел без них работать?
Какая совместимость? Чего с чем? С и Ассемблера?
Quark писал(а): При наличии на одной строке нескольких операторов «;» уже не чисто эстетическая.
С этим - не спорю. Но продубитровать инструкцию для ещё одного chr$ сил не хватает :) ?
А ведь мата при отладке из-за подобных мелочей бывает много.
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

[b]По поводу маршрут-листа[/b]

Сообщение Pk » Чт янв 25, 2007 13:31

может развить трансфер? Т.е. ставится метка (имя), при совпадении которой сцеп подцепляется к (отцепляется от) основному составу. Всё остальное время сцем слепо едет по ордерам основного состава. При отсутствии - к любому.

На тему "хранить вагоны на станции" - не согласен, забьются моментально, нужны тупики. Либо загонять в депо.

вид листов
у сцепа
FFF central (full load)[FFFC-DRNWE]
Darnway Exchange [DRNWE-RHC]
Rathill Central (full load)[RHC-DRNWE]
Darnway Exchange [DRNWE-FFFC]

у локомотива 1
FFF RR Dept
FFF central (pickup[FFFC-DRNWE])
Darnway Exchange (drop[FFFC-DRNWE])
Darnway Exchange (pickup[DRNWE-FFFC])
FFF central (drop[DRNWE-FFFC])

у локомотива 2
Muhill Central (pickup[MHC-RHC])(pickup[MHC-DRNWE])
Darnway Exchange (drop [MHC-DRNWE])(pickup[DRNWE-RHC])
Rathill Central (drop[DRNWE-RHC])(drop[MHC-RHC])
Rathill RR Dept
Rathill Central (pickup[RHC-DRNWE])(pickup[RHC-MHC])
Darnway Exchange (drop [RHC-DRNWE])(pickup[DRNWE-MHC])
Muhill Central (drop[RHC-MHC])(drop[DRNWE-MHC])

Что мы имеем:
анализ 1-го сцепа из FungFingFord'a и 2-х локомотивов. магистральный (Muhill-Rathill), и локальный(FFF- Darnway exchange).
Обратите внимание: Поезд из Muhill идёт под 2-мя сцепами.
Что можно довести:
1. Отображение. Пунктуация.
Можно заменить [] при отображении на пробел.
2. Отображение. Маски.
Ввести маски для подцепки/отцепки составов по маске. Желателен разделитель " - " для разбивки.
3. Отображение. Внешний вид.
Чтобы не перегружать маршрутный лист можно поставить кнопочку сбоку от нужной остановки, где и будут прописаны все pickup/drop

Так же
Локомотив тоже может иметь метку вида [FFF-BSB]
Сцеп так же может иметь ордер "pickup"
Т.е. обрабатываются одной и той же сабой. И даже более того - локомотив просто имеет возможность двигатся без посторонней помощи . :wink:

Нафига локомотиву-то??
Предположим, что у нас сразу за станцией крутой подъём. Тогда мы ставим один такой маневровый локомотив с нужными ордерами (кстати, маневровые вроде не умеют цеплять - они только толкают) он подкатывает перед отправкой к нужному составу и выталкивает наверх. После чего отцепляется на точке пути и уезжает в свой тупик отдыхать.
Нафига сцепу? - А кому это будет мешать? Кому надо - использует, кому нет - и так забьёт.
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

Пред.След.

Вернуться в Общие вопросы по OpenTTD

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14