Simulation einer Bahn mit Python

Bei der Simulation einer Eisenbahnanlage stellen sich auf grundlegender Ebene folgende Aufgaben:

  1. Wie definiere ich den räumlichen Verlauf der Gleise bzw. deren Verknüpfungen über Weichen?
  2. Wie erzeuge ich daraus ein Datenmodell, in dem Weichen gestellt und beliebige Zugfahrten simuliert werden können?
  3. Wie kann ich die physische Realität abbilden, in der zwei Züge nicht gleichzeitig dasselbe Gleis befahren können?
  4. Wie steuere ich die virtuellen Züge vielmehr so, dass Kollisionen ausgeschlossen werden?
  5. Wie stelle ich das Ganze informativ und ansprechend dar?

Das Programm PyBahn stellt sich diesen Herausforderungen mit den Hausmitteln der Python-Programmierumgebung, so wie sie in Thonny mit der Sprache Python selbst und dem Grafikpaket tkinter gegeben sind. Es gilt also, ein gut verständliches, funktionsfähiges und gleichzeitig praktisch brauchbares Konstrukt zu erstellen, das allen obigen Fragen beantwortet.

Ursprünglich sollte dies ein Projekt für meine Python-AG werden, doch stellte sich heraus, dass die notwendige Komplexität schulische Begrenzungen weit übersteigt. Aber es ist eine Basis entstanden, auf der man komfortabel seine eigenen Vorstellungen von Gleislaufplänen, Zugsteuerungen, Signalisierungen, Fahrplänen und Sicherungsvorkehrungen realisieren kann – wenn man sich mit Python halbwegs zuhause fühlt. Den Code inklusive Dokumentation gibt es hier zum runterladen.