Absender: Frank Menzel
Datum: So, 31.08.2008 21:03:26
In-reply-to:
<3A16F342-377B-4904-A4C6-7FCF6A8B28FB@xxxxxxxxxxxxxxx>
Hallo Timo, also die Benutzung der Routine selbst habe ich schon verstanden und dass sie bei map_wa_free Sinn bringt. Aber wie Du beschreibst " alle 20 cm mit map_get_ratio() nachfragt" gibt es ja dieses Ereignis "Bin jetzt 20cm" seit vorhin gefahren gar nicht und müsste selbst berechnet werden in dem Verhalten. Und dieses gibt es ja auch nicht: " und von letzter Abfrage bis 20 cm weiter" Denn der Routine kann man ja nur die Koordinaten selbst, neben der Breite und den Werten, übergeben. Wie wäre es mit dem Parameter "x cm voraus gucken in Richtung des 2. Punktes" ? Also nicht direkt immer den gesamten Korridor bis zum 2. Punkt sondern eben nur die 20cm voraus. Dir ist sicherlich der Timer von 700ms ein Dorn im Auge, deswegen wohl der Vorschlag. Ja man könnte sicherlich aller gefahrenen 20cm nur nach nebenan nachsehen aber wie oben erwähnt habe ich nicht dieses Ereignis "bin jetzt 20cm" gefahren. Gut man könnte das Verhalten für 20cm Fahren aufrufen, dann nebenan die Bahnen checken und wieder 20cm fahren, dadurch wird aber wieder alles sequentiell. Ich fand eben die parallelen Observer so schön... Mir ist da noch gerade beim Übersetzen eine Warnung in der map.c ins Auge gefallen: ../map.c: In function `map_read': ../map.c:1292: warning: long unsigned int format, size_t arg (arg 2) ../map.c:1292: warning: long unsigned int format, unsigned int arg (arg 3) An der Stelle: printf("Konnte nur %lu Bytes lesen, Karte ist aber %lu Bytes gross!\n", cnt, (size_t) ((MAP_SIZE * MAP_RESOLUTION) * (MAP_SIZE* MAP_RESOLUTION))); Gruß, Frank -----Ursprüngliche Nachricht----- Von: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx [mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] Im Auftrag von Timo Sandmann Gesendet: Sonntag, 31. August 2008 20:12 An: Entwicklung rund um den c't-bot Betreff: Re: AW: [ct-bot] MAP-Verhalten nur fuer Sim ? -> Patch fuerVerhalten Hallo Frank, Am 31.08.2008 um 19:44 schrieb Frank Menzel: > Hallo Timo, > habe hin- und herüberlegt, bin aber auf keine Lösung gekommen, wie Du > das meinst bzw. wie sich damit die Obserververhalten vereinfachen > sollten. > " neue Map-Funktion map_get_ratio() am > Interessantesten, weil sie das Observer-Verhalten deutlich > vereinfachen müsste" du sagst map_get_ratio() welcher Bereich dich interessiert und welche Map-Werte die Felder darin haben sollten. Wenn also das Observer- Verhalten alle 20 cm mit map_get_ratio() nachfragt, ob in dem Bereich neben dem Bot und von letzter Abfrage bis 20 cm weiter voraus alle Felder zwischen 10 und 127 liegen und map_get_ratio() antwortet, dass das für 80% der Felder zutrifft, dann kannst du wohl davon ausgehen, dass die Bahn nebendran schon befahren wurde. Geht natürlich auch andersherum, um zu erfahren, wie viel Hindernisse dort bekannt sind, oder wie viel noch gar nicht erkundet ist (Mapwert = 0) usw. map_way_free() jetzt implementiert ist, das benutzt map_get_ratio() nämlich genau so. Gruß Timo _______________________________________________ ct-bot-entwickler Mailingliste ct-bot-entwickler@xxxxxxxxxxxxxxxxx http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler