Haftungsausschluss: Dies ist eine dieser gefürchteten Fragen im Minecraft-Stil, aber ich denke, es ist eher eine Frage zu Datenstrukturen und Algorithmen
Ich bin wirklich neu in 3D-Datenstrukturen und frage mich, wie ich eine 3D-Blockstruktur am besten speichern und anpassen kann.
Im Moment kann der Spieler Blöcke in einem beliebigen Raum platzieren. Wenn diese Blöcke mit einer vordefinierten Struktur übereinstimmen, tritt ein Ereignis auf. Wenn ein Spieler einen Block platziert, überprüft das Spiel rekursiv jeden benachbarten Block, um den Block mit der niedrigsten x-, y-, z-Koordinate zu finden, und macht diesen Block zum Wurzelblock. Anschließend werden die restlichen Blöcke basierend auf dem Stammblock überprüft, um sicherzustellen, dass sie mit einer bestimmten Vorlage übereinstimmen. Das Problem ist, dass mit der Kompliziertheit der Vorlage auch mein (schrecklich ineffizienter) Code komplizierter wird.
Ich denke, der beste Weg, dies zu tun, besteht darin, eine Art Matrix zu speichern, die die Struktur definiert, und dann mit der Matrix abzugleichen, wenn ein Spieler einen Block platziert. Gibt es bereits Datenstrukturen / Algorithmen, die zu dieser Art von Problem passen würden?