Отказ от ответственности: это один из тех страшных вопросов в стиле Minecraft, но я чувствую, что это больше вопрос структуры данных и алгоритмов
Я действительно новичок в трехмерных структурах данных и мне интересно, как лучше всего хранить и сопоставлять трехмерную блочную структуру.
Прямо сейчас игрок может разместить блоки в любом произвольном пространстве, и когда эти блоки соответствуют предопределенной структуре, происходит событие. В настоящее время я делаю это так: когда игрок размещает блок, игра рекурсивно проверяет каждый соседний блок, чтобы найти блок с наименьшими координатами x, y, z и делает этот блок корневым блоком. Затем он проверяет остальные блоки, основанные на корневом блоке, чтобы убедиться, что они соответствуют определенному шаблону. Проблема в том, что по мере усложнения шаблона, мой (ужасно неэффективный) код тоже.
Я думаю, что лучший способ сделать это - сохранить некую матрицу, которая определяет структуру, а затем сопоставлять ее с матрицей, когда игрок размещает блок. Уже существуют структуры данных / алгоритмы, которые бы соответствовали этому типу проблемы?