Train Driver 2

Dział ogólny => Ogłoszenia => Wątek zaczęty przez: Ares28 w 22 Grudnia 2017, 01:35:53

Tytuł: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Ares28 w 22 Grudnia 2017, 01:35:53
(https://img.ttsk.ngo/images/2017/12/22/GeneratorLosowychSkladow2.jpg) (https://img.ttsk.ngo/image/tYGs7)

...dwudziesty drugi, dwudziesty trzeci, dwudziesty czwarty...
— Rewident Taboru Janusz

Generator Losowych Składów cz.2

Drodzy gracze!

Z uwagi na wasze propozycje, zdecydowaliśmy się zmodyfikować nasz Generator Losowych Składów. W nowej wersji, będzie także możliwość wygenerowania pociągu o określonej liczbie wagonów.
Wystarczy, aby przed nazwą wagonu, bądź elementu definiującego zbiór wagonów dodamy:

n:X,

Sprawi to, iż dany element zostanie powielony X razy.

Na przykład znana wam z wcześniejszego artykułu komenda, uzupełniona o liczbę wagonów:
/sp <semafor> n:4,Eaos
zostanie przez generator zinterpretowana jak:

/sp <semafor> Eaos;Eaos;Eaos;Eaos
i stworzy nam cztery losowe węglarki.


Dodatkowo, aby generator był bardziej przyjazny użytkownikowi, sprawiliśmy iż będzie on działał nawet jeśli przy wpisywaniu pomylicie wielkości liter.
A zatem wszystkie poniższe wpisy:

dadzą ten sam efekt.



Poniżej zaprezentowano kilka składów oraz komendy,
które posłużyły do ich wygenerowania (od lewej do prawej):

(https://img.ttsk.ngo/images/2017/12/22/Zrzutekranu2017-12-2200.10.59.md.png) (https://img.ttsk.ngo/image/tYMqF)

/sp <semafor> n:14,PKPCs
/sp <semafor> n:24,pkpcn_eaos:coal_01
/sp <semafor> n:30,eaos_pkpc
/sp <semafor> n:4,111_ic;n:2,112_IC;n:3,111a_PKPn;n:2,110_ic



Nowy format generatora zostanie zastosowany nie tylko podczas spawnowania wagonów przez DR, ale także w nowym edytorze dla mechaników, o którym przeczytacie już w następnej części DevBloga!
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Trepan w 22 Grudnia 2017, 08:13:33
jak rozumiem wpisując
Cytuj
n:14, eaos
otrzymam 14 węglarek, ale każda może być inna czy raz jest losowany model dla całej 14tki?
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Ares28 w 22 Grudnia 2017, 11:52:59

jak rozumiem wpisując
Cytuj
n:14, eaos
otrzymam 14 węglarek, ale każda może być inna czy raz jest losowany model dla całej 14tki?

Na przykład znana wam z wcześniejszego artykułu komenda, uzupełniona o liczbę wagonów:
/sp <semafor> n:4,Eaos
zostanie przez generator zinterpretowana jak:

/sp <semafor> Eaos;Eaos;Eaos;Eaos
i stworzy nam cztery losowe węglarki.
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: MaciejakS w 22 Grudnia 2017, 13:56:10
Cytuj
i stworzy nam cztery losowe węglarki.
;)
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Trepan w 13 Stycznia 2018, 10:49:16
Kolejna rzecz w związku z górkami rozrządowymi i innymi elementami: długość składu. Teraz jest określana sztywno ilość wagonów. Jakbyś zaimplementował możliwość określenia przedziału. Wpis n:4 oznacza 4 wagony, wpis n:1,4 oznaczałby od jednego do 4ech wagonów. Poza tym wiem co myśli większość, ale są tu osoby, które mają chęć na rozrządzanie. Tylko trzeba do tego przynajmniej dwie manewrówki (absolutne minimum, jedna spycha, druga przetacza na tory odjazdowe rozrządzone składy) i manewrowego, który będzie te składy do rozrządzania szykował (pisanie kart, rozprzęganie), więc mamy tu 4ech ludzi, ale może kiedyś się uda. W każdym razie długość składu jako kolejna zmienna byłaby fajna. Jedna uwaga tylko: wagony typu 110 i podobne są tylko trochę dłuższe od gags na przykład. Taki BHP może narobić niezłego bajzlu. Losując długość składu wypada mieć jakieś zabezpieczenie przed spawnem zbyt wielu elementów zespolonych.
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: shafter w 13 Stycznia 2018, 12:17:13
Dla tych co nie wiedza/nie pamietaja:

Komenda /sp ma warunek :x odsuwajacy powstający skład o x metrów od pktu spawnów.

Czyli: /sp <semafor>:25 n:4,Eaos

Zrespi nam 4 losowe węglarki w odległości 25m od semafora.

Bardzo przydatne do urealnienia dekoracyjnych składów bez cudowania z zakopanymi Tm itd.

Komenda poprawiona. //Coyotek
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Kacper9 w 13 Stycznia 2018, 12:56:26
Nie działa to to shafter coś :D.
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Aseru w 13 Stycznia 2018, 13:40:15
Dla tych co nie wiedza/nie pamietaja:

Komenda /sp ma warunek :x odsuwajacy powstający skład o x metrów od pktu spawnów.

Czyli: /sp:25 <semafor> n:4,Eaos

Zrespi nam 4 losowe węglarki w odległości 25m od semafora.

Bardzo przydatne do urealnienia dekoracyjnych składów bez cudowania z zakopanymi Tm itd.

Nooo wreszcie tak sztucznie nie będzie to wyglądać  ;D
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Ares28 w 13 Stycznia 2018, 15:23:27
Komenda /sp ma warunek :x odsuwajacy powstający skład o x metrów od pktu spawnów.

Czyli: /sp:25 <semafor> n:4,Eaos

Nie działa to to shafter coś :D.

Nie działa bo prawidłowa komenda wygląda tak:

/sp <semafor>:<odległość> n:<liczba wagonów>,<nazwa>
czyli np:

/sp D:25 n:4,eaos
zrespi 4 eaosy 25m przed semaforem D.
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Trepan w 13 Stycznia 2018, 16:09:26
Ares miałem na myśli zupełnie inną rzecz: losowanie ilości wagonów, które się pojawią.
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: mentorious w 13 Stycznia 2018, 23:38:54
Ares miałem na myśli zupełnie inną rzecz: losowanie ilości wagonów, które się pojawią.

Wymaga za duzo liczenia ze strony i nakladu pracy w stosunku do korzysci. Musialbys brac pod uwage dlugosc toru i dlugosc poszczegolnych wagonow.  I po co, skoro mozesz sobie sam wybrac liczbe losowo w glowie?  :P
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Trepan w 14 Stycznia 2018, 08:57:10
@mentorious DR spawnując powinien wiedzieć mniej więcej na co może sobie pozwolić i jak długo ma tor. Jak napisałem kilka postów wyżej, obecnie jest n:14, a gdyby system losował w przedziale? Biorę Tomaszów, mam luzaka i daję mu węglarki. Ale chcę żeby wylosowało poziom trudności, od łatwego po trudny. Wpis
Cytuj
/sp E6 n:10,37,ea:coal_01;
dałby skład od 10ciu do 37dmiu absolutnie losowych węglarek. Chodzi o dodanie zakresu w miejscu liczby. Biorąc po uwagę, że losowanych jest sporo zmiennych to dodanie jednej chyba nie położy sprawy.
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: jakubg1 w 14 Stycznia 2018, 09:11:03
To przecież dosłownie kilka obliczeń. Najpierw sprawdzamy o jakiej długości ma być skład (przyjąłem że 400 m), a potem tylko:
//(uwaga: zmienne zapisane takie jakie sobie wymyśliłem, nie mam dostępu do kodu więc trzeba to przepisać z innymi deklaracjami itd.)
list sklad = new List<>(); // lista wagonow
int dlugosc = 0; // dlugosc dotychczasowa skladu
int docelowaDlugosc = 400; // docelowa dlugosc skladu (nie mozna jej przekroczyc, ale "upychamy" jak najwiecej)
while dlugosc < docelowaDlugosc { // petla wykonuje sie dopoki nie przekroczymy docelowej dlugosci skladu
    string wagon = losujWagon("Ea"); // losujemy dowolny wagon (dane losowania: np. "Ea" - węglarka)
    int dlugoscWagonu = bibliotekaSkladow.dlugoscWagonu(wagon); // dlugosc wagonu wyprowadzamy do zmiennej (metoda wzieta z dupy, jak tam jest - nie wiem)
    dlugosc += dlugoscWagonu; // dodajemy dlugosc wagonu do lacznej dlugosci skladu
    sklad.Add(wagon); // dodajemy wagon do skladu
}
sklad.Pop(); // na koniec usuwamy ostatni wagon ktory juz nie zmiescil sie w 400 m
zespawnujSklad(sklad); // i spawnujemy sklad
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: niemiec w 14 Stycznia 2018, 21:00:47
Będzie to zaimplementowane również w generatorze składów z symulatorze? Aby łączyć się ze scenerią już z gotowym losowym składem.
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Ares28 w 14 Stycznia 2018, 21:21:00
Będzie to zaimplementowane również w generatorze składów z symulatorze? Aby łączyć się ze scenerią już z gotowym losowym składem.

Nowy format generatora zostanie zastosowany nie tylko podczas spawnowania wagonów przez DR, ale także w nowym edytorze dla mechaników, o którym przeczytacie już w następnej części DevBloga!
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Trepan w 22 Stycznia 2018, 10:45:43
Ares co z tym losowaniem długości? Będzie czy nie ma co sobie robić nadziei?
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Ares28 w 22 Stycznia 2018, 15:07:48
Ares co z tym losowaniem długości? Będzie czy nie ma co sobie robić nadziei?

Wymaga za duzo liczenia ze strony i nakladu pracy w stosunku do korzysci. Musialbys brac pod uwage dlugosc toru i dlugosc poszczegolnych wagonow.  I po co, skoro mozesz sobie sam wybrac liczbe losowo w glowie?  :P
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: jakubg1 w 22 Stycznia 2018, 15:33:29
Ponadto kiedy wybierzemy sobie zakres od 200 do 750 m, program może wylosować np. 739 m przy torze mającym długość 500 m. Składy powinny być przewidywalne.
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Trepan w 22 Stycznia 2018, 17:25:13
Sam napisałeś kod jak to ogarnąć. Przewidywalne w zakresie, ja nie wiem ile eaosów wejdzie na 700 metrowy tor (tak samo na każdą inną długość, mogę co najwyżej szacować). Lepiej limitować długość niż a może się uda trafić z liczbą. No i założenie limitu długości ma chronić przed czymś innym przede wszystkim: spawn wagonów drugiej klasy, bhp są o wiele dłuższe od innych, nie chciałbym mieć nagle 10ciu...
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: jakubg1 w 22 Stycznia 2018, 18:33:18
Losowanie długości to kwestia brania tego do zmiennych i wstawienia 1 (słownie: jednej) linijki w samej formule.
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: trainfun09 w 23 Stycznia 2018, 21:05:36
Mi przyszło takie coś do mego (pustego) łebka:
Na semaforze była by możliwość wybrania maks. długość składu, ale bez opcji sprawny. W komendzie wpisywałoby się zakres np. Od 500 do 750m, i jeśli semafor wykryje próbę spawnu składu dłuższego niż ma wpisaną maks. dł., to wyświetli stosowny komunikat. Oczywiście pod tym semaforem gracze nie mieliby możliwości spawnu, bo semafor ma tylko wpisaną maks. długość.

Z poważaniem.
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: ISEDR_GCA w 23 Stycznia 2018, 22:06:28
Mi przyszło takie coś do mego (pustego) łebka:
Na semaforze była by możliwość wybrania maks. długość składu, ale bez opcji sprawny. W komendzie wpisywałoby się zakres np. Od 500 do 750m, i jeśli semafor wykryje próbę spawnu składu dłuższego niż ma wpisaną maks. dł., to wyświetli stosowny komunikat. Oczywiście pod tym semaforem gracze nie mieliby możliwości spawnu, bo semafor ma tylko wpisaną maks. długość.

Z poważaniem.

Napisz to tu:
https://bt.td2.info.pl/index.php?project=2
Tytuł: Odp: DevBlog: Generator Losowych Składów cz.2
Wiadomość wysłana przez: Trepan w 24 Stycznia 2018, 04:37:26
No i już mamy gotowe rozwiązanie, tylko wpisać długości w scenerie. Wiadomo, że we wjazdowe nie ma po co czy odstępowe na szlakach, niech zostanie 0, żeby troll na dyżurce komuś przed nosem miał trudniej zrespić wagon. Ponieważ pomysł wymaga zmiany w prawie każdej scenerii to wprowadzi małe zamieszanie z aktualizowaniem plików. Sugeruję wprowadzanie go razem z wymogiem poprawnych izolacji i pakietem poprawek do ewentualnych błędów znanych na danej scenerii, żeby pobierać plik raz. Na to mam jeszcze jedno rozwiązanie, automatyczne pobieranie i aktualizowanie każdej scenerii, na którą mam autoryzację.