Zitat von
Schilly:
ja ... aber verbraucht das nicht zuviel speicher? - wäre jetzt meine frage gewesen, wobei mir grade einfällt dass es dann wahrscheinlich gar nicht neu gespeichert wird .. so wie arrays, oder? ^^
hm ok, also gar nicht mit pointern ...
danke
Delphi-Quellcode:
var
Mine1, Mine2: TMineButton;
Mine1 := TMineButton.Create; //Damit wird eine Instanz von TMineButton erzeugt und der Speicher entsprechend reserviert. Mine1 enthält nun einen Zeiger auf die Daten.
Mine2 := Mine1; //Damit wird nur der Zeiger, der auf Mine1 zeigt Mine2 zugewiesen, d.h. Mine1 und Mine2 zeigen nun auf die gleiche Instanz.
Ich würde gar kein Array mit Nachbarn verwenden, sonder jeder Mine ihre Koordinate im Minenfeld mitgeben. Daraus kann sie sich dann die Nachbarn errechnen:
Mine mit den Koordinaten x/y
Nachbarn: x-1/y-1
x-1/y
x-1/y+1
usw.
Du musst natürlich noch kontrollieren, ob die Koordinate nicht an die Grenze des Minenfeldes stößt und der Mine eine Referenz auf das komplette Minenfeld mitgeben.