c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

AW: [ct-bot] area - Stack- Pfadplanung

Absender: Frank Menzel
Datum: Sa, 25.10.2008 18:37:18
In-reply-to: <10346885-2E5E-4B13-B43D-5D4D339A0C58@xxxxxxxxxxxxxxx>


Hi Timo,
wenn ich das richtig verstanden habe, wird einfach der Indexwert geholt
und gemerkt, ab dem der neue Stack sozusagen losgeht. Dann kommen die
diversen Push's und irgendwann auch die Pop's und wenn der gemerkte
Indexwert erreicht wird, ist dieser Stack sozusagen leer.
Das sollte doch mit dem Fifo genauso klappen. Ich hole zuerst den
Indexwert und packe mit Push (bzw. _queue) die Daten hinten drauf. Bei
dequeue müsste doch immer der Wert des Arrays an der Stelle des
gemerkten Indexwertes zurückgegeben werden, bis der eigentliche
Arrayzähler diesen Indexwert unterschreitet. Oder habe ich einen
Denkfehler ? Andererseits könnte man bei dem Beispiel der Pfadplanung
und dem danach gestarteten Stackfahrverhalten die Sache umdrehen. Also
nicht mittels Fifo rausholen und hinten reinschieben, sondern vorn
reinschieben und hinten einfach rausholen, also das Stackfahrverhalten
ganz normal ohne fifo-Entnahme starten. Also entnehmen mittels
pos_store_pop_until.
Müßte nicht eigentlich auch ein pos_store_clear_until her ?
Und um noch mal beim Beispiel der Pfadplanung zu bleiben, müsste man
auch den gemerkten Indexwert aus der Pfadplanung, also dem Wert ab dem
die abzufahrenden Punkte losgehen, dem folgenden Stackfahrverhalten
übermitteln können. Denn für diese beiden Verhalten ist ja der Stack
identisch.
Wird irgendwie doch alles komplexer als gedacht. Erst mal danke soweit.

Gruß, Frank

-----Ursprüngliche Nachricht-----
Von: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx
[mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] Im Auftrag von Timo
Sandmann
Gesendet: Samstag, 25. Oktober 2008 14:05
An: Entwicklung rund um den c't-bot
Betreff: Re: [ct-bot] area - Stack- Pfadplanung

Hallo Frank,

Am 24.10.2008 um 22:20 schrieb Timo Sandmann:
> ich habe das in pos_store.c mal schnell eingebaut.  
> pos_store_pop_until() kann man einen Stackpointer übergeben (den man  
> vorher mit pos_store_get_sp() geholt hat), bis zu dem dann  
> pos_store_pop() aufgerufen wird. Analog funktioniert das ganze bei  
> pos_store_dequeue_until().

das war etwas voreilig, für FIFO funktioniert die Idee so nicht,  
sondern nur für die Stack-Variante. Das bringt dir aber nichts, weil  
du im angesprochenen Fall eine FIFO brauchst, obwohl noch alte  
Stackdaten im Array sind. :-/
Ich hatte den Fall alte FIFO-Daten im Array und neuen Stack drauf  
angenommen, wofür der Code auch funktioniert, aber die Umkehrung  
klappt natürlich so nicht, sorry. pos_store_dequeue_until() entfällt  
somit.
Da brauchen wir doch irgendwie eine andere Lösung...

Grüße,
Timo


_______________________________________________
ct-bot-entwickler Mailingliste
ct-bot-entwickler@xxxxxxxxxxxxxxxxx
http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler