Einzelnen Beitrag anzeigen

Benutzerbild von MrMooed
MrMooed

Registriert seit: 18. Feb 2012
101 Beiträge
 
Delphi 7 Enterprise
 
#29

AW: Snake - Ein Problem mit dynamischen Arrays

  Alt 4. Apr 2012, 23:13
[..] Ein dynamisches Array ist schon eine nette Idee für die Schlange, allerdings gibt es schönere Datenstrukturen dafür. Z.B. eine FIFO (first in first out). Klassisch wäre dies wohl TQueue, ein Erbe von Collection.
Was den Speicherplatz angeht: bei solchem "Kleinkram" achtet heute niemand mehr auf Speicher, trotzdem ist es schlechter Stil, Speicher zu verschwenden. Willst du also deine Schlange zwingend in einer eigenen Datenstruktur speichern, wäre es ratsam eine eigene Klasse Schlange anzulegen. Die Klasse bekommt intern einen Fifo, mit dem die aktuell belegten Felder gespeichert werden, und enthält Methoden um den Richtungswechsel zu verarbeiten, Position zurück zu geben ect. Hmm... Jetzt bin ich abgeschweift. Zurück zum FIFO: der Fifo muss nur X Elemente speichern, wobei X die Länge der Schlange ist. Du musst dir keine 4 Elemente Pro Schlangen-Abschnitt merken! Theoretisch reicht ein Punkt (x,y) oder noch schöner nur ein Wert Z. Dazu nummerierst du gedanklich deine Positionen durch. Hast du ein Feld, dass a breit ist und b hoch, so sagt dir z.b. x mod a die Zeile in der ein Element ist und x div b die Reihe. Somit musst du maximal pro Sclangen-Teil noch einen Integer speichern (schöner noch nen byte) [..]
FIFOs gehen MIR viel zu weit über den Kopf, allerdings wäre es vllt. etwas für Coffeecoder's Java Projekt Ich werde mich erstmal auf die Version mit dem Array beschränken und mir FIFOs bei gaaaanz viel langeweile ansehen. Trotzdem nette Ergänzung.
  Mit Zitat antworten Zitat