## c't-Projekte - Mailinglisten

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

### Re: [ct-bot] bot_drive_area()-Frage

Absender: Timo Sandmann
Datum: Mi, 18.02.2009 14:29:01
In-reply-to: <096FD558C4D20046A1BABE72DFF0C6C339FF5CC653@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
References: <000401c99051$8bf68730$0200a8c0@mexpnew> <B1CBD00B-1122-401F-844B-69A0901C3536@xxxxxxxxxxxxxxx> <096FD558C4D20046A1BABE72DFF0C6C339FF5CC653@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>

    Hi Frank,

    Am 18.02.2009 um 12:32 schrieb Menzel, Frank IT-OO4:

> `Prinzipiell schon, habe aber das Problem, dass ich da irgendwie` `einen Zähler mitgeben möchte. Der Sinn ist der, dass wenn eine` `Strecke aktuell nicht anfahrbar ist, diese nicht verworfen sondern` `mit erhöhtem Zählerwert vorn reingeschoben wird. Erst nach x-` `Versuchen (z.B. Zähler der Strecke > 5) des Anfahrens wird diese` `Strecke verworfen.`

`so ganz habe ich noch nicht verstanden, was du meinst. Wenn eine` `Strecke nicht anfahrbar ist, setzt du einen Zähler für die Strecke auf` `1 und packst sie vorne in den Stack. Jetzt geht es mit der letzten` `Strecke aus dem Stack weiter. Irgendwann sind dann alle Strecke aus` `dem Stack mit pop() geholt worden und es ist nur noch die` `"Zurückgestellte" mit dem Zähler == 1 dort drin. Jetzt wird diese` `geholt und beim Auslesen merkst du, dass der Zähler auf 1 steht. Jetzt` `ist die Strecke immer noch nicht anfahrbar und du erhöhst den Zähler` `auf 2, anschließend kommt die Strecke wieder vorne in den (jetzt` `leeren) Stack. Und nun?`

    Verstehe ich das soweit erstmal richtig?

> `Ohne Zähler ist ja nicht bekannt, wie oft ich diese Strecke schon` `versucht habe anzufahren und würde Endlosschleife mit sich` `bringen...Wie kann hier am besten ein Zähler mit rein?`

`Man braucht ja einen Zähler pro Strecke, also für jeden zweiten Stack-` `Eintrag, richtig? Entweder bekommt jeder Stack-Eintrag ein Byte mehr,` `wo du beliebige Werte von 0 bis 255 speichern kannst, dann hätten wir` `25 % mehr RAM-Verbrauch für jeden Stack. Oder der Stack bzw. Speicher` `kann unterschiedliche Datentypen speichern, Positionen (x und y),` `Strecken (x1, y1, x2, y2) und Strecken mit Zähler (x1, y1, x2, y2, z).` `Dann hätte der Stack für das Area-Verhalten zwar immer noch zusätzlich` `1 Byte pro Strecke belegt (+ 12,5 % RAM), egal ob der Eintrag nun` `einen Zähler braucht oder nicht, alle anderen Stacks der anderen` `Verhalten würden aber keinen Speicherplatz verschwenden.` `Alternativ dazu: Das Verhalten macht selbst eine Liste auf und` `speichert zu interessanten Positionen des Stacks (Index im Stack-` `Array) einen Zähler.`

    Gruß,
    Timo

- Antworten:
  - AW: [ct-bot] bot_drive_area()-Frage
    - From: Frank Menzel

- Referenzen:
  - AW: [ct-bot] bot_drive_area()-Frage
    - From: Frank Menzel
  - Re: [ct-bot] bot_drive_area()-Frage
    - From: Timo Sandmann
  - RE: [ct-bot] bot_drive_area()-Frage
    - From: Menzel, Frank IT-OO4

- Voriger (Datum): RE: [ct-bot] bot_drive_area()-Frage, Menzel, Frank IT-OO4
- Nächster (Datum): AW: [ct-bot] bot_drive_area()-Frage, Frank Menzel
- Voriger (Thread): RE: [ct-bot] bot_drive_area()-Frage, Menzel, Frank IT-OO4
- Nächster (Thread): AW: [ct-bot] bot_drive_area()-Frage, Frank Menzel
- Indizes:
  - Datum
  - Thread