So, jetzt die vorerst letzte Weiterentwicklung von mir. Da die Rechengeschwindigkeit als Manko betrachtet wurde (schneller ist sowieso immer besser) habe ich mir den Code noch einmal angesehen und folgende Verbesserungen gemacht:
- Das Prüfen der Regeln wird abgebrochen, sobald eine passt.
- Strassenbau und Hausbau sind getrennt.
- Hausbau ist praktisch wie gehabt. Zufällig Position wählen, prüfen, bauen oder auch nicht.
- Beim Strassenbau wird die alte Position gespeichert und von da an die Umgebung abgesucht.
Das hat zwei wesentliche Folgen:
1. Es werden jetzt längere Strassenabschnitte am Stück gebaut.
2. Die Suchzeit geht teilweise drastisch runter, da oft gleich beim ersten mal etwas bebaubares gefunden wird.
Dann habe ich noch die size_min und size_max eingeführt für die Stadtgrösse bei den Regeln. Desweiteren gibt chance jetzt die Prüfwahrscheinlichkeit der Regel in Promille an. In cityrules.tab wurden die Änderungen eingebaut.
Unterschiedliche cityrules.tab für verschiedene Städte gibt es noch nicht.
Es wird beim Strassenbau die Anzahl der Strassen an der Anzahl der Häuser ausgerichtet, d.h. 10 Strassen pro 7 Häuser im Moment. (Achtung, ich denke dass die entsprechende Variable nicht gespeichert wird, bin mir da aber nicht sicher. Da könnte es Probleme mit Savegames geben.)
Ein Resultat ist im angehängten Savegame zu sehen.
Der von mir geänderte Quelltext kann als Anregung dienen. Rechte auf meine Änderungen beanspruche ich nicht. Die einzelnen Änderungen sollten jedoch nochmal auf Funktionsfähigkeit überprüft werden, da beim Testen manchmal Segfaults aufgetreten sind, die ich nicht eindeutig zuordnen konnte.
In näherer Zukunft werde ich mangels Zeit daran nichts mehr daran machen können. Aber es gibt ja noch ne Menge andere. Ich hoffe, dass das ganze noch etwas perfektioniert wird und in zukünftigen Versionen von Simutrans Eingang findet