![]() |
Passagier-(und Post-)Erzeugung - Druckversion +- Deutsches Simutransforum (https://simutrans-forum.de/mybb) +-- Forum: Simutrans (https://simutrans-forum.de/mybb/forumdisplay.php?fid=3) +--- Forum: Wie spiele ich Simutrans? (https://simutrans-forum.de/mybb/forumdisplay.php?fid=6) +--- Thema: Passagier-(und Post-)Erzeugung (/showthread.php?tid=6059) |
- Randy007 - 16-10-2011 Vielleicht bin ich ja zu blöd, aber: 1. eine koord_t kann ich im gesamten Quellcode nicht finden. Ich hab lediglich die Variablendefinition unter settings_economy_stats_t::init und eine Übergabe unter settings_t::parse_simuconf gefunden. Was dann aber weiter passiert=grosse ??? 2. Leider beantwortet das auch meine Frage nicht! Eine Gewichtung findet im Normalfall im Prozent oder Promillebereich statt. Daher kann ich mit einem Wert von 2999 nichts anfangen. Gruss - 3+4i - 16-10-2011 Lol, jetzt bin ich fast genauso schlau wie vorher :tongue:. Inzwischen fürchte ich immer mehr, dass ich auch dann nicht viel mit dem Code werde anfangen können, wenn ich das Wikibook über C++ durch habe. In einen Prozentwert lässt sich die Formel wohl nicht umwandeln. - Randy007 - 17-10-2011 @ 3+4i Och, immer feste üben - irgendwann klappts. Beim zweiten Wert könnte ich mir vorstellen, dass es sich um longInt-Wert handelt. Dann müsste man diesen durch 100 teilen und mal den Prozenten nehmen, die man einsetzen will. - prissi - 17-10-2011 Simutrans benutzt zum Glück relativ wenig und meist auch nur vernüftig dokumentiertes C++; sonst hätte ich 2004 auch gleich das Handtuch geworfen. Die std:: sachen find ich eher (bsch) und den reichlichen Gebrauch von templates z.B. bei grund_t::find<...>() ist auch nicht mein Ding. Ind koord.h findet sich die Routine: weight_by_distance(). Die berechnet aus dem Level und der Entfernung ein Gewicht für die Auswahl des Ziels. Alle potentiellen Ziele werde so berechnet und in ein Array mit gewichten Leveln einsortiert. Aus Level 3 wird 300, um auch Luft nach unten zu haben. In Entfernung 10 wird daraus vielleicht 4127 und int 1000 Kästchen Entfernung 7. Danach werden die Levels in derm Array aufaddiert und ergeben zusamenn z.B. 904357. Dann wird eine Zahl zufällig ausgewählt, sagen wir 41728. Nun wird von Anfang das Haus gesucht, dessen summiertes Level kleiner-gleich dieser Zahl ist und dessen Nachfolger darüber liegt. Das geht sehr fix und ist nur dank templates mittlerweile etwas unübersichtlich geworden. - 3+4i - 17-10-2011 @Randy: Noch hatte ich nicht vor, aufzugeben ![]() Zitat:Original von prissiHalt, Moment, und was ist dann der Rest? Ich dachte das ganze Programm wäre in C++ geschrieben ?(. Um die Wirkung unterschiedlicher Werte für locality_factor[x].factor zu verdeutlichen, müsste man wohl eine Grafik zeichnen, mit einer Hand voll Beispielwerten, so wie es prissi weiter oben gemacht hat. Nach der Verwendung von locality_factor[x].year habe ich jetzt nicht weiter gesucht ![]() - whoami - 18-10-2011 Zitat:Original von 3+4iGemeint ist sicherlich, dass nicht der ganze Funktionsumfang von C++ benutzt wird, und dass an vielen Stellen ganz normal wie in C gearbeitet wird. - 3+4i - 18-10-2011 Okay, dann bin ich ja beruhigt. Ich hatte schon fast befürchtet meine Arbeit könnte umsonst sein ![]() |