Hallo dj,
Ja, es gibt verschachtelte Schleifen, z.B.:... wie ist das mit den Schleifen?
Darf ich merere ineinander schreiben?
#Start
...
#Schleife
...
If A = B Then Goto Schleife
...
Goto Start
Da ist eine äußere Schleife ohne Bedingung und eine kleine innere Schleife, die solange wiederholt wird, bis A <> B ist. Wenn die Bedingung A <> B nie eintritt, hängt sich das Prog da auf.
Unterprogramme kann man auch verschachteln:
#Unterprog1
...
Return
#Unterprog2
...
Gosub Unterprog1
...
Return
Da ruft das 2. Unterprog das 1. auf.
Beim Proggen sollte man nur immer nachvollziehen können, wohin das Prog bei welcher Bedingung springt. Ein großer Nachteil vom "Herumspringen" im Prog ist, dass man da schnell den Überblick verliert.
Wenn ihr hier einen intelligenten RP5 bauen wollt, braucht ihr erst 'mal gute Unterprogramme.
Z.B.:
Unterprogramm "RP5 Stoppen" ->
Setzt SPEED_R und SPEED_L gleich Null, dann Return.
Geht aber auch komplexer: Wenn der Bot nicht sofort stoppen soll, sondern langsam abbremsen, würde das Unterprog einen "Eingabeparameter" brauchen. Der könnte z.B. 0 sein, wenn der Bot sofort stoppen soll und > 0 für das langsame Abbremsen. So ein Unterprog ist also einfach: Es braucht keinen oder höchstens einen Parameter.
2. Beispiel:
Unterprog "RP5 Geradeausfahrt":
Hier wird's schon schwieriger. Ein Eingabeparameter wäre nötig, der die Wegstrecke angibt, die geradeaus zu fahren ist. Das könnte ein Word sein und der Wegstreckenzähler würde das dann machen.
Aber: Das Unterprog müßte ja wohl auch das ACS benutzen, denn der RP5 darf ja auf seinem Weg nicht irgendwo anstoßen.
Dann könnte man für dieses Prog noch einen "Ausgabeparameter" nehmen. Denn das Hauptprogramm wüßte ja vielleicht gern, ob unterwegs ein Hindernis war und ob die ganze Wegstrecke geschafft wurde.
So viel als Beispiel: Interessiert?
Weitere Unterprogs wären z.B.: Linkskurve, Rechtsrotation mit X Grad usw.
Am Ende der Kette werden diese Unterprogs durch Verschachtelung immer komplexer: Geh-in-eine-Ecke, Suche-Ausgang, Suche-Licht usw.
Ein Hauptprogramm wird dadurch immer kürzer:
#Start
Gosub Suche-Raummitte
Gosub Geh-in-eine-Ecke
Gosub Warte-auf-Dunkelheit
Gosub Suche-Ausgang
...
(Danach fiel er eine Treppe herunter!).![]()
Also Vorschlag:
Baut doch erst 'mal einige Unterprogs, durch die der RP5 immer mehr kann! Ich beteilige mich, wenn ihr Interesse habt!
Gruß Dirk
Lesezeichen