Страница 1 из 1

По поводу замкнутости железнодорожных сетей...

СообщениеДобавлено: Ср дек 08, 2004 19:07
Alexey
Всем привет!
Вот столкнулся с проблемой.

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

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

Способ второй:
Я случайно заметил, что когда только-только ставишь станцию (кликаешь мышкой, когда на кончике ее курсора висит зеленый ее образ!), то в долю секунды кнопка "ОК" активна ,- и только после несколький итреаций программа понимает, что либо станция оторвана от всех остальных, либо денег на строительство не хватает (чем я кстати зачастую и пользуюсь!!!). Этот эффект особенно заметен если оперативки на компьютере мало, а игрушка ведь ее требует достаточно много. Так вот, клавиша Enter в любом из меню игры подтверждает совершение какой-либо оперции, в частности и подтверждения установки ж/д станции. Попробуйте, как только кликнув мышей, тут же нажать Enter - я не ручаюсь, что у вас сразу получиться, но раза с пятого вполне. Определите приблизительный пероид, когда кнопка ОК становится активной ,- тогда и дерзайте! :) Это в качестве совета.
Но я думаю и этот способ многим известен.

Так вот, в чем собственно у меня проблема в процессе игры возникла. Я долго думал, в чем же дело.
В начале расскажу симптомы: Начинаю я иргать всегда с самого раннего периода - 1850 год. где-то к году 1910-му, когда система моя приобретает вполне определенный и солидный вид - игра виснет, причем не спонтанно. Подвисает капитально (даже в Windows не выходит), когда на одной из последних рельсовых ветвей, которые я построил, я на нажимаю мышей на железнодорожный состав, дабы узнать график его передвижения, или из списка графиков движения (я думаю объяснять не надо). В это врямя над курсором мыши еще успевает всплыть посказка со свойствами данного локомотива. И в этот прекрастный момент игрушка зависает! Даже после перезагрузки компьютера - все повторяется с тем же успехом!
Причем при загрузке предыдущих сохранений, когда эта ветка еще не построена, или только-только начала функционировать, т.е. по ней пошел этот злополучный состав ,- все в порядке! - прекрастно можно просмотреть график движения, и подкорректировать при желании.
Долго думал - в чем проблема, пока не начал мыслить в русле программирования. И догадка моя состоит в следующем:

Почему же разработчики не смогли сделать так, чтобы система (причем только железнодороджая) могла быть разорвана, состоять из отдельный, несвыязных частей? Ведь игра так пристально пытается навязать соответствие с реальной жизнью, транспортных систем в реальной жизни. Почему все рельсы должны быть замкнуты (об этом даже в мануале написали с извинениями)? Неужели это так затруднительно организовать на уровне программирования? И скорее всего это так!

(// дальнейшие рассуждения будут понятны всем, кто хоть как-то шарит в программировании и высшей математике. Иным - можно следующий абзац пропустить)
Я думаю, что ж/д система разработчиками схематически представляется в виде графа - а этот граф обязан быть замкнутым, поскольку программа ищет кратчайшие пути передвижения, обычные маршруты в этом графе. В разорваном же графе это проделать невозможно простейшим алгоритмом. А как известно эти самые графы в программировании легко представляются в виде матриц - массивов, простыми словами. Да и вообще, наверняка там создан всего лишь один массив для хранения системы рельс, их пересечения и семафоров. Для разорванных систем потребовалось бы каждый раз создавать такие динамические массивы. Судя по всему разработчики решили не парить себе мозги.

Проще и короче говоря, программисты так решили - так и сделали, создав для меня проблему, хотя может кто-то еще с ней сталкивался.
Подчиняясь этим рассуждениям, я решил, что программа еще как-то справляется, когда я мельком нажимаю клавишу Enter, и что-то как-то там с трудом обрабатывает, когда моя ж/д система состоит из разорванных клочков, не соединенных друг с другом. Но где-то на восьмом таком "клочке" (программисты, я думаю, поймут почему именно на восьмом) - алгоритм сдыхает, ругается видимо про себя и тихонько так, отказывается работать! Причем строить такие отдельные ветки программа резрешеат сколько угодно, но вот как только ты решишь пустить по одной из них поезд - тут начнутся проблемы. Первые несколько ходок этото состав будет верно приносить тебе прибыль, и можно будет без проблем вызывать и изменять график его движения, количество загрузки товаров и т.д. Но по истечении определенного времени, в очередной раз замыслив изменить график, или просто при необходимости заменить локомотив на более новый ,- программа, как я уже говорил, подвисает.

Вот собственно у меня вопрос: может такое быть? Верны ли мои размышления? И вообще - кто-либо с таким еще сталкивался??? Или я один в поле воин! :)
// Хвала тому, кто дочитал мои трактаты до конца - я сам не ожидал, что это так много займет! Пишите - буду рад услышать ваши комментарии! :)

СообщениеДобавлено: Чт дек 09, 2004 00:55
Oleg
Вау. Это сильно. Я не программист, но сейчас как раз столкнулся с необходимостью писать программу нахождения пути (об этом в другой раз) - так что примерно представляю, о чём речь.
Помню, такая же хитрость применялась в Railroad Tycoon - строили кусок пути потом отрезали.

Мне не совсем понятно, что такого страшного, чтобы соединять все пути? Представь, в реале, начём ты будешь возить, скажем, ВЛ10 :) к начальной точке маршрута от вагоностроительного завода? По-моему все пути в реале как-то между собой соединяются.

Насчёт же самой такой проблемы, то я ещё такого не встречал. В любом случае, это похоже на баг, который может быть (?) исправлен в патче, которого нам с русской версией не видать вовек.

П.С. зачем создавать динамические массивы? просто если поиск пути завершился безрезультатно, значит, такого пути нет и всё.
8-)

СообщениеДобавлено: Чт дек 09, 2004 13:16
AgRiG
Я тоже не программист, хотя в школе меня программированием вместе с теорией графов грузили на обязательных факультативах :( .
Мысль твою, Alexey, понимаю. С точки зрения теории(а я жуткий теоретик 8) ) так оно скорее всего и обстоит. Что не есть хорошо, поскольку тогда решить проблему обязательности связанности ж/д практически невозможно без глубокопания :) в коде игры, на что разработчики вряд ли пойдут. А без переделки основы в виде массива графов проблему вылетов не решить. Указанный тобой "обходной путь" за счет использования багов в коде еще ни в одной сложносочиненной игре не доводил до добра.

СообщениеДобавлено: Чт дек 09, 2004 22:11
Alexey
Спасибо, ребята, что отвечаете!

Вы обо мне не будьте столь высокого мнения ,- я ж тож цыцняюсь!!! :))) То, что я сказал о графах, массивах, связности, поиску оптимальных маршрутов - это все только мои гипотезы. Но я так понимаю, что они верны. В этих теоретических делах я разбираюсь - обожал в свое время дискретную математику...

Кстати, Олег, могу если что помочь тебе с алгоритмами нахождения оптимальных путей. (Тебя нужно немного просветить в этих делах: если поиск пути завершился безрезультатно, то это совсем не значит, что такого пути нету!)

Вы правы, что это скорее похоже на баг, но легче мне от этого не становиться.

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

Так вот я загрузился с предидущих сохранений, достроил новые ветки, ведя их от уже существующей системы, и во главе составов поставил иные паровозы, нежели везде. После этого игругшка не зависала больше! Продолжаю играть ,- пока все впорядке, уже пару десятков лет прошло. Но я боюсь опять сэксперементировать - и заново поставить все поезда одинаковыми, или начать новую сеть, разделенной от всех остальных.
Вот так!

Я продолжаю ждать ваших гипотез и рассуждений.
Заранее благодарен.

//кстати, может save`ами обменяемся?! :)

СообщениеДобавлено: Чт дек 16, 2004 22:07
celt
Я что-то не понял, что вы хотите сделать, но скажу одно, что станций в версий 1.1 можно было строить, где угодно и сколько угодно не было такова геморроя как сейчас, это изменения внесли в версию 1.2 вот!
может я и не в тему сказал!

СообщениеДобавлено: Вт дек 21, 2004 19:50
Alexey
celt писал(а):Я что-то не понял, что вы хотите сделать, но скажу одно, что станций в версий 1.1 можно было строить, где угодно и сколько угодно не было такова геморроя как сейчас, это изменения внесли в версию 1.2 вот!
может я и не в тему сказал!


Это возможно ты говоришь про оригинальную английскую версию - а мы беседу ведем про русскую. Тут дела несколько посложнее

СообщениеДобавлено: Ср дек 22, 2004 00:22
celt
Нет - нет про Русскую версию от "Акеллы"
Я на одном форуме читал, там люди говорили, что хренова станций больше стоить нельзя, где попало!

СообщениеДобавлено: Чт дек 23, 2004 12:50
L-Zet (pstudio)
Вот правда интересно, в чем сложность? Неужели нельзя если существуют 2, 3, 4... 10 разделенных систем выделять их в отдельные графы.
Это опять же теоретствуя...

СообщениеДобавлено: Ср мар 02, 2005 22:22
Alexey
L-Zet (pstudio) писал(а):Вот правда интересно, в чем сложность? Неужели нельзя если существуют 2, 3, 4... 10 разделенных систем выделять их в отдельные графы.


Видимо разработчики решили, что нельзя :(
Игра то собственно сырая еще.

Re: По поводу замкнутости железнодорожных сетей...

СообщениеДобавлено: Сб авг 15, 2009 18:27
FreakOut
Автор конечно молодец, что всё так расписал, но на самом деле всё намного проще. При постройке станции не надо ловить эту долю секунды, чтобы успеть поставить станцию. Все гораздо проще. Выбираете станцию, зажимаете enter и кликом мышки ставите её куда надо!

Re: По поводу замкнутости железнодорожных сетей...

СообщениеДобавлено: Чт апр 04, 2013 17:45
ARATHORN
Вот оно! Помню, что где-то читал... На счёт этого бага с ентером и строительством станции, отделённой от основной сети.

В Европейской мисси, где надо построить тоннель под Ла Маншем 1990-2010 (что странно, когда его открыли в 1994! :) ), я решил поэкспериментировать с первоначальной веткой, и начать не от Парижа, (как это предлагается игрой), а из Лондона. Воспользовавшись описанным багом, и построив ветку на земле бритов, я начал возить молоко на фабрику, а от туда сыр в Лондон. От одного рейса с молоком поезд принёс более 800 000 И каково же было моё удивление, когда после отгрузки сыра в Лондоне, я получил сообщение, что миссия пройдена! :o

То есть в задании написано "Маршрут до города Лондон - Цель (2010) - 1. Но не указано, от куда маршрут-то! :lol:

Вот вам 10 простых шагов для достижения победы в этой миссии:

Re: По поводу замкнутости железнодорожных сетей...

СообщениеДобавлено: Чт апр 04, 2013 17:50
ARATHORN
Как выиграть мисию с Ла Маншем за 10 шагов... продолжение :D