dbahr Posted October 14, 2022 Share Posted October 14, 2022 Hallo miteinander! Im Anhang eine Testanlage mit dem Ziel, den ersten freien Parkplatz zu finden. Die Parkplätze 1 bis 5 haben je eine Boolsche Variable "Frei". In einer Wiederholung frage ich ab, welcher Parkplatz in der Liste "Parkplätze" des Kontaktes "Zufahrt Parkplatz" frei wäre. Irgendwie funktioniert das nicht so - ein Denkfehler von mir liegt vermutlich vor. Bitte um einen Tipp, wie es richtig sein sollte. Danke im Voraus und liebe Grüße Detlef Parkplatzsuche.mbp Link to comment Share on other sites More sharing options...
Hawkeye Posted October 14, 2022 Share Posted October 14, 2022 (edited) Hallo @dbahr, du musst die Schleife auch verlassen, wenn du einen freien Parkplatz gefunden hast. Dein Programm prüft alle freien Plätze, aber sucht trotzdem weiter. Ein möglicher Lösungsvorschlag: Ein kleiner Eintrag im Skript. Mit "return" die Schleife verlassen, wenn ein "freier Parkplatz vorhanden ist. Dann findet der Wagen auch den ersten freien Parkplatz. Viele Grüße, Hawkeye Edited October 14, 2022 by Hawkeye Link to comment Share on other sites More sharing options...
tim-fischertechnik Posted October 14, 2022 Share Posted October 14, 2022 Hallo @dbahr, schönes Beispiel! Ich habe noch einen kleinen Verbesserungsvorschlag. Wenn mehrere Fahrzeuge direkt hintereinander auf der Straße in Richtung der Parkplätze fahren, dann werden mehreren Fahrzeugen dasselbe Ziel für die Parklücke zugewiesen. Entsprechend kommt es zu einer Blockade wie auf dem hier gezeigten Bild. Es wird sowohl dem ersten Fahrzeug (Pajero) als auch dem zweiten Fahrzeug (SUV 2) derselbe Parkplatz als Ziel (Parkplatz 4) zugewiesen! Das Problem liegt in der zeitlichen Reihenfolge, wann du den Parkplatz als belegt (Variable: frei = false) deklarierst. Momentan gilt der Parkplatzt erst dann belegt, wenn das Fahrzeug den Gleiskontakt mit dem Schlagwort Parkplatz betritt. In der Zwischenzeit betritt ein weiteres Fahrzeug jedoch den Gleiskontakt "Zufahrt Parkplatz" und der Parkplatz 4 wird irrtümlicherweise als frei deklariert, obwohl das erste Fahrzeug kurzerhand diese Position ansteuert und bald erreichen wird. Die Lösung des zeitlichen Problems besteht darin, dass du die Parkposition direkt als belegt deklarierst, nachdem dem Fahrzeug das Ziel zugewiesen wurde. Damit kannst du dir das zweite Ereignis "Kontakt Parkplatz wird betreten" sparen. Viele Grüße Tim Link to comment Share on other sites More sharing options...
dbahr Posted October 15, 2022 Author Share Posted October 15, 2022 Vielen Dank für eure Lösungsvorsachläge. Tja, das mit der Schleife - der eigentliche Denkfehler. Liebe Grüße Detlef Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now