Open baaldor opened 10 years ago
Der Tag Value ist mir nicht ganz klar:
Warum geben wir zum einen alle verwendeten Klassen an, und zum andern alle Nachbarn? Ob eine Zelle zu einer anderen in einer Nachbarschaftsbeziehung steht sollte doch in einer der angegeben Klassen geregelt sein, weswegen es genügen sollte lediglich die Zellen zu speichern.
Zum Thema "Value": Meine Überlegung war, dass sich ein CellState ja nicht nur aus einem Feld zusammensetzen muss so wie in unserem BooleanCellState aus einem boolschen Wert. Denkbar ist ja, dass ein CellState sich aus mehreren Feldern zusammensetzt - quasi CellState als Werte-Tupel. Das XML-Attribut "name" sollte dann die Zuweisung des Wertes zum jeweiligen Feld ermöglichen. Aber auf der anderen Seite hilft mein Ansatz auch nicht weiter, wenn die Struktur komplizierter als ein Tupel ist. Vermutlich muss man für jede CellState-Ableitung einen eigenen Serializer schreiben. Das überdenke ich nochmal.
Wir geben alle verwendeten Klassen an, damit wir sie wissen, wenn wir das Universum aus dem File bauen wollen. Wir brauchen eventuell die Information welche Ableitung von Universum benutzt wurde. Genau das gleiche gilt für Cell, CellState und Neighbourhood.
Gleiche Idee steckt dahinter, dass ich speicheren möchte, welche Nachbarn eine Zelle hat. Wenn ich das Universum aus dem File zusammenbauen möchte, muss ich das wissen. Sieh es aus der Sicht des Bauknechts. Der bekommt nur das File, in dem Informationene über ein Universum gespeichert sind. Dann soll er es rekonstruieren - nur mit den Informationen aus dem File. Alles was dort nicht steht, weiß er nicht. Ergo muss die Nachbarschaftsbeziehung gespeichert werden.
Wenn wir ein Universum speichern, müssen folgende Informationen festgehalten werden:
Damit wären wir unabhängig von der Wahl der Nachbarschaftsbeziehung (z.B. 8er-, 6er- oder 4er-Nachbarschaft), der Wahl des CellState (muss ja nicht immer Boolscher Wert sein) usw.
Was sagt ihr dazu?