Online Time Saver Solver

#1 von daniekr , 16.10.2023 10:17

Liebe Modellbahnfreunde,

da ich in mein Modellbahn-Layout demnächst mit einem TimeSaver-ähnlichem Teil erweitern will, habe ich mir mal Gedanken gemacht, wie man daraus eine gescheite Challenge machen kann, insbesondere die Frage
"Was ist die optimale Anzahl an Zügen (pun intendet)?" vom Ausgansszenario zum Zielszenario.

Herausgekommen ist mein TimeSaverSolver, den ich euch hier vorstellen möchte:

Bild entfernt (keine Rechte)

Es ist eine Web-Applikation, in dem man ein Layout (klassischer TimeSaver und Inglenook) wählen kann, dazu die Anzahl der Wagen.
Dann kann man sich randomisiert oder manuell ein Start- und Zielssetting setzen und in der Zeit, in der man selbst fährt, den Computer den optimalen Weg finden lassen.
Im Backend, das per webASM komplett auf eurem Rechner oder Smartphone läuft, sind alle möglichen Zustände vorberechnet.

Als Resultat sieht man dann Schritt für Schritt (die Lok bewegt sich ein Element pro Schritt), wie der Computer das Szenario bewältigen würde.
Da es mir nicht möglich war, die Zeit zu simulieren, die man beim Fahren braucht, gibt es einen Punkte-Zähler, nicht nur die einzelnen Schritte zählt, sondern die tatsächlichen Aktionen.

Die Regeln, nachdenen die Punkte gezählt werden:
- Richtungswechsel der Lok kosten einen Punkt.
- Eine Weiche umzustellen kostet einen Punkt.
- Wagons an/abkuppeln kostet einen Punkt.
- Wagons dürfen nicht auf Weichen geparkt werden (mit Ausnahme der TimeSaver-Weiche zum unteren Abzweig)

Aktuell muss man noch händisch mitzählen, wenn man die Punkte vergleichen möchte.
Zielszenario ist, den TimeSaverSolver in meine Modellbahn-Steuerung winston zu integrieren. Dann kann man z.B. auf einem Display sehen, wie viele Punkte man gerade zusammenfährt.

Für die technikaffinen Leser:
Intern gibt es pro Layout-Wagen-Kombination ein großes Array, das alle Zustände und deren Übergänge abbilden kann.
Dank einiger algorithmischer Tricks und etwas Bit-Shuffling kann ein github-actions-Vorgang mir das alles in wenigen Sekunden vorberechnen und mit emSDK zu einer Applikation kompilieren, die dann auf github-pages gehostet wird.
Aktuell stößt allerdings der finale Compile-/Linker-Schritt an die RAM-Grenze der github actions runner, sodass der klassische TimeSaver nur mit Lokomotive und vier Wagen unterstützt wird.

Ausprobieren könnt ihr das ganze hier: https://danie1kr.github.io/timeSaverSolver/
Es läuft in jedem modernen Browser.

Falls ihr Fragen, Verbesserungsvorschläge oder Fehler entdeckt, gerne hier berichten.
Ich freue ich mich auf eure Kommentare :)

Daniel


Anlage Kornweinheim und winston, meine Mikrocontroller-Anlagensteuerung. Online-Solver für TimeSaver & Inglenook -Layouts.


 
daniekr
InterRegio (IR)
Beiträge: 107
Registriert am: 29.07.2020
Spurweite H0
Stromart Digital


   

Railware und Märklin CS3 mit SLink88
Sounddateien für Zugspitzbahn

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz