Disclaimer: questa è una di quelle temute domande in stile Minecraft, ma penso che sia più una domanda su strutture di dati e algoritmi
Sono davvero nuovo alle strutture di dati 3D e mi chiedo quale sia il modo migliore per archiviare e abbinare una struttura di blocchi 3D.
In questo momento, il giocatore è in grado di posizionare blocchi in qualsiasi spazio arbitrario e quando questi blocchi corrispondono a una struttura predefinita si verifica un evento. Il modo in cui lo sto facendo attualmente è quando un giocatore posiziona un blocco il gioco controlla ricorsivamente ogni blocco adiacente per trovare il blocco con la coordinata x, y, z più bassa e rende quel blocco il blocco radice. Quindi controlla il resto dei blocchi, in base al blocco radice, per assicurarsi che corrispondano a un determinato modello. Il problema è che quando il modello diventa più complicato, anche il mio codice (terribilmente inefficiente).
Sto pensando che il modo migliore per farlo sia quello di memorizzare un qualche tipo di matrice che definisce la struttura e quindi abbinare contro la matrice ogni volta che un giocatore piazza un blocco. Esistono già strutture / algoritmi di dati che corrisponderebbero a questo tipo di problema?