in meinem derzeitigem Projekt (einen Schachcomputer from scratch), habe Ich ein Problem mit dem Speichern meines Varianten-Baums, Ich kann alle möglichen Stellungen aus einer Stellung erzeugen und in ein Array of pposition speichern.
Code: Alles auswählen
Tposition = array[0..7] of array[0..7] of integer;
pposition = Tposition;
Code: Alles auswählen
var
tree := array of pposition;
begin
tree[011] := position; //Stellung 1 von Stellung 1 von Stellung 0 soll gespeichert werden
tree[011] := position; //Stellung 11 von Stellung 0 soll gespeichert werden
//diese beiden Positionen würden sich also überschreiben. Deswegen habe Ich auf ein Array mit variabler Dimensionsanzahl gehofft. Ungefähr so:
setdimensions(tree,depth); //depth ist die Suchtiefe (also beim ersten zug 1 beim 2ten 2 usw.)
tree[0,1,1] := position; //Stellung 1 von Stellung 1 von Stellung 0 soll gespeichert werden
tree[0,11] := position; //Stellung 11 von Stellung 0 soll gespeichert werden
//diese Methode würde für 2 verschiedene Speicherorte sorgen.
end;
Also brauch Ich eine andere Art des Speicherns.
Zurzeit benutze Ich einen Workaround der aber extrem inefficient ist.
Kennt irgendjemand eine Möglichkeit so einen Baum zu speichern?
Danke im Vorraus.