Ampelsystem

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Ampelsystem

    Hey,

    Ich arbeite momentan an einer "Kreuzungssimulation", in der eine normale Kreuzung simuliert werden soll.

    Die Kreuzung selbst besteht aus 4 Ampeln, welche den Straßen, sowie auch den Fußgängerweg leiten soll. (Ich denke jedem ist bewusst was ich meine).



    Eine herkömmliche Kreuzung also, nur das dass ganze um Gehwege ergänzt werden sollte.

    Ich selbst bin leider noch ein ziemlicher Anfänger und hatte schon ein wenig herumprobiert, jedoch leider noch nicht den cleversten Weg gefunden.


    - Wie schaffe ich es am besten, das alle 4 Ampeln "miteinander" arbeiten? (Sind Timer empfehlenswert? (+ If else...)
    - Was wäre der schlauste Ansatz?


    Wäre sehr dankbar über jede Art von Hilfe!

    :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „GlooZ“ ()

    Das ganze kann man gut mit Automaten erst mal modellieren.
    Du hast 4 Eingaben, wobei jede Eingabe den Zustand der Straße darstellt z.B. wenn ein Auto an der Ampel 1,2,3 ist und an Ampel 4 ist leer kann die Eingabe {1,1,1,0} sein.
    Die Zustände sind dementsprechend alle möglichen Anzeigen der Ampel (d.h. 16 Zustände, kann man aber sicher irgendwie verkleinern).
    Als Takt kannst du dann einen Timer benutzen, sodass du alle x Sekunden den Folgezustand bestimmst (nach welchen Regeln kommt eben drauf an wie die Ampeln geschaltet werden sollen, da kenn Ich mich nicht aus)

    Wenn du das modelliert hast, ist das schon fast alles. Die Implementierung machst du dann gemäß der Regeln vom Automaten

    ManuelSoftware schrieb:

    Timer sind eine variante, aber warscheinlich eine der einfachsten.
    Musst halt wissen wie die ampeln miteinander arbeiten, es gibt ja verschiedene Ampelschaltungen.



    Vielen Dank erst einmal!


    Das stimmt...Ich habe es bisher so geregelt das in gewissen Abständen der Timer funktionen aufruft, welche die Farbe der "Ampeln" ändert.

    Bietet den klaren vorteil das es relativ übersichtlich ist und einfach. Allerdings geschieht das ganze am Ende natürlich ein wenig wie ein "Video"...Es durchläuft ein Intervall und fängt von vorne an.


    Gibt es noch schlauere Lösungen? Die sich vielleicht ohne Probleme weiter ausbauen lassen würden?


    Danke im vorraus!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „GlooZ“ ()

    Sorry, aber solltest du bei Fragen nicht deinen Lehrer oder Ausbilder fragen?
    Und solltest du deine Hausaufgaben nicht selbst machen?
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.

    MrTrebron schrieb:

    Sorry, aber solltest du bei Fragen nicht deinen Lehrer oder Ausbilder fragen?
    Und solltest du deine Hausaufgaben nicht selbst machen?


    Habe ich irgendwo danach gefragt, ob mir jemand das komplette System programmiert?

    Ich denke genau wie andere Themen auch, kann man dieses ganz normal beantworten...Ich suche hier nicht nach komplett Lösungen um Code zu klauen, sondern nach ernsthaften Lösungsansätzen. Bin halt Anfänger, wie jeder mal.


    Gibt es eine OOP-Lösungsvariante dazu? Verstehe nicht ganz was OOP selbst ausmacht...

    Ich weiß, meine Fragen sind Anfänger fragen, aber ich bin nicht hier um mit meinem Wissen zu prahlen, sondern um zu lernen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „GlooZ“ ()

    timer1 aktiviert ampel1 und ampel3 und gleichzeitig sind die fußgängerampeln von ampel1 zu ampel2 und ampel 3 zu ampel4 grün,
    timer2 aktiviert ampel2 und ampel4 und gleichzeitig ist die fußgängerampel von ampel2 zu ampel4 und ampel4 zu amepl1 grün.

    So in etwa müssten die ampeln an einer kreuzung schalten.
    Hier könnte meine Signatur stehen.
    Super, vielen Dank!


    Ich habe es jetzt bisher versucht und es klappt.

    Ich habe einen Timer, welcher die Zeit überprüft und nach X Sekunden Funktionen aufruft, welche die Farbe der Ampeln kontrolliert.

    Nun möchte ich das ganze in Richtung OOP Lösen...Wie geht man dort vor? Gibt es etwas gutes zum einlesen? (SEHR Anfänger freundlich?)


    Vielen Dank nochmal für die Antworten!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „GlooZ“ ()

    GlooZ schrieb:

    Nun möchte ich das ganze in Richtung OOP Lösen
    OOP ist ein Ansatz, wo das Programm die Realität "nachmacht" - sie "modelliert":
    Inne Realität gibts verschiedene Arten von Objekten, das sind die Klassen.
    Und es gibt die Objekte selber, das sind die Objekte.
    Jedes Objekt ist von einer Art, und die Arten sind verschieden. Inne Realität gibts Objekte der Art Flugzeug, und es gibt Objekte der Art Mensch, und und und.
    Das mit den Arten/Klassen ist nett, denn so kann man von derselben Art/Klasse mehrere Objekte erstellen.

    Und darauf will ich hinaus, dass du dir eine Klasse Ampel codest, und jede Ampel hat eine Liste von Zuständen (ebenfalls eine Klasse), sowie einen "im Kreise drehenden Zeiger", der den aktuellen Zustand anzeigt.
    Die Liste der Zustände in Verbindung mit dem Zeiger stellt eine Art "AmpelProgramm" dar.
    Jo, von den Ampeln erstellst du dir 4 Stück, gibst allen das gleiche Programm, nur mit verschieden voreingestellten Zeigern.
    Timer haste ja schon, der rückt dann jeweils alle Ampeln einen Schritt weiter und feddich.