|
 |
 |
 |
|
|
c't Projekte - c't-Bot und c't-Sim -
Mailinglisten
[Voriger (Datum)]
[Nächster (Datum)]
[Voriger (Thread)]
[Nächster (Thread)]
[Nach Datum][Nach Thread]
Absender: Timo Sandmann
Datum: Fr, 20.07.2007 15:56:43
In-reply-to:
<812F86EC9E1A96489D5E83C2AB7D688601211F2A@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
References:
<812F86EC9E1A96489D5E83C2AB7D688601211F2A@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Hallo,
Am 20.07.2007 um 15:27 schrieb Menzel, Frank IT-OO4:
Hallo,
Wie wäre es denn, wenn man dem Verhalten eine Beendigungsbedingung
mitgeben könnte in Form einer frei definierten Routine ? Ist diese
nicht belegt (default) ist alles wie jetzt. Wird diese belegt und
die darin festgelegte Bedingung erfüllt, so wird das Verhalten
einfach beendet.
Meine Denkweise geht dahin: Auf dem Weg zu einem Ziel komme ich zu
einem Hindernis. Mein Verhalten wird unterbrochen, ich starte
solve_maze mit der Abbruchbedingung und lande wieder in meinem
Verhalten auf dem Weg zum Ziel. So könnte man den Wandfolger
starten lassen zum umrunden des Hindernisses und wenn der Weg zum
Ziel frei ist wird es wieder beendet...
das ist eine sehr gute Idee! :-)
Ich würde aber vorschlagen sie allgemeiner und für alle Verhalten
benutzbar umzusetzen, so wie das unter <https://www.heise.de/ct/
projekte/machmit/ctbot/wiki/NeueVerhalten> (kann man evtl. etwas
anders implementieren als dort skizziert) schon mal angedacht wurde.
Abbrechen kann man laufende Verhalten "von außen" ja bereits per
RemoteCall, derselbe Mechanismus sollte sich ebenfalls für ein
Verhalten, das eine Boolsche Funktion als Bedingung übergeben bekommt
und in Abhängigkeit davon den Abbruch durchführt, nutzen lassen.
Voraussetzung ist allerdings, dass solve_maze() (und alle anderen
Verhalten) auch korrekt initialisiert werden, wenn sie nach einem
Abbruch neu gestartet wurden, siehe Bug #120 <https://www.heise.de/ct/
projekte/machmit/ctbot/ticket/120>.
Viele Grüße,
Timo
|
|
|