Ich habe eine 2D-Kachel-basierte Strategie in Arbeit. Ich überlege, wie ich mit der Beziehung zwischen der Karte und den Einheiten auf der Karte umgehen soll.
Bei einer gegebenen Kachelkoordinate muss ich in der Lage sein, die Einheit darauf zu stellen, falls vorhanden. Wenn ich eine Einheit habe, möchte ich gleichzeitig in der Lage sein, die Koordinate der Einheit zu erhalten.
Ich habe zwei Lösungen dafür gesehen. Die erste Lösung wäre, dass Einheiten eine Koordinate speichern und die Karten Einheitenreferenzen in ihren Kacheln speichern. Dies erzeugt eine zyklische Abhängigkeit zwischen der Karte und den Einheiten. Ich müsste sicherstellen, dass die Karte einer beliebigen Einheit synchron bleibt, wenn sich die Einheit bewegt.
Die zweite Lösung wäre, nur die Einheiten ihre Koordinaten verfolgen zu lassen. Um festzustellen, ob eine Kachel eine Einheit enthält, und um diese Einheit zu erhalten, würde ich den gesamten Satz von Einheiten durchlaufen. Ich finde eine Einheit mit übereinstimmenden Koordinaten. Dadurch werden die zyklischen Abhängigkeiten beseitigt, aber die O (1) -Eigenschaft, die die erste Lösung zum Nachschlagen von Einheiten auf der Karte hatte, wird verloren. Dies kann sich summieren, da ich die Karte regelmäßig nach Pfaden suchen, den Bewegungsbereich bestimmen und gültige Ziele für eine bestimmte Einheit finden möchte.
Ich kann die Einheiten auch nicht einfach auf der Karte speichern (oder?). Einheiten sind mit "Armeen" verbunden, entweder Spieler oder KI. Eine Armee sollte in der Lage sein, leicht auf alle ihre Einheiten zuzugreifen und diese zu durchlaufen.
Gibt es neben den beiden Mustern, die ich für die Verwaltung der Beziehungen zwischen Einheiten und Karten beschrieben habe, noch andere Muster, da dies in Strategiespielen ein häufiges Problem zu sein scheint?