[[http://www.siedler-games.de|{{:sg-link.jpg|}}]] ====== Einführung ====== Programmablaufpläne sind Grafiken, mit denen man den Ablauf eines Programmes bzw Scriptes planen und visualisieren kann. Eine kurze Übersicht und Erklärung gibt es [[wpde>Programmablaufplan|hier]]. Wenn man in seinem Script nichttriviale Abläufe verwendet, kann es praktisch sein zur Fehlervermeidung ein Diagramm dafür zu erstellen. Ausserdem kann einem diese strukturierte Darstellung helfen zu erkennen, wie es implementiert werden muss. Mit solchen Ablaufdiagrammen kann man auch bei größeren Karten mit vielen Quests und Ereignissen leichter den Überblick behalten, und unvorhergesehene (aber mögliche!) Ereignisse finden. ===== Beispiel ===== ==== Aufgabe ==== Es existieren Tor1 (offen) und Tor2 (geschlossen) sowie Drake. Wenn Drake bei Tor1 ankommt, soll ihm erstmal die Tür vor der Nase zugeknallt werden. Immer wenn er nochmal hinläuft, sollen ihm Blitze vor den Füßen einschlagen. Wenn der Spieler dann aber Tor2 zerstört hat, soll Tor1 beim nächsten Besuch von Drake wieder geöffnet werden, und dann auch offen bleiben. ==== Lösungsansatz ==== Da auf das Eintreten bestimmter Bedingungen gewartet wird ist klar, daß man einen Job dafür starten muss. Nur wie fängt man nun an diesen zu implementieren? \\ Man "malt" sich zunächst ein Bild: \\ {{ablaufplan_beispieldrake.png}} Hier gibt es ein {{ablaufplan_demovideo.7z|Demonstrationsvideo}} welches zeigt, wie das Diagramm mit [[http://www.gk-informatik.de/tools/fludi.zip|diesem Programm]] erstellt wurde. ==== Codeerstellung ==== Anhand des erstellten Diagrammes könnte man nun selber anfangen die entsprechende Codestruktur zu erstellen. Allerdings erleichtert einem dies das Programm: \\ Man kann das Diagramm mit ''Datei'' -> ''In Zwischenablage kopieren'' in (Pseudo)Code umwandeln. Im Fall von diesem Diagramm sieht es dann so aus: if Ist Drake bei Tor1? then begin if Ist das Tor geschlossen? then begin if Wurde Tor2 zerstört? then begin Öffne Tor1; Beende den Job; end else begin Blitz vor Drake einschlagen lassen; end; end else begin Schliesse das Tor; end; end Das ist zwar leider kein Lua Code, aber man kann diesen Schnipsel als Vorlage im Editor verwenden und schnell mit eigenem Code füllen. ====== Verbesserung des Diagrammprogrammes ====== Dieser Abschnitt richtet sich nicht an die Personen, die ein Diagramm erstellen möchten, sondern an hilfsbereite Delphi Programmierer. Der Delphi Quelltext des Programmes liegt der oben angegebenen Zipdatei bei. Wenn sich hier ein Delphi Programmierer findet, könnte dieser das Programm verändern, so daß es formatierten Lua Code ausgibt. \\ \\ [[:tutorials:index|Zur Tutorial-Übersicht]]