Как определить, есть ли у меня 4 вокселя подряд вдоль линии одного и того же наклона в трехмерных измерениях в Unity / C# и / или matlab? - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь повозиться с созданием 3D-игры connect4 в Unity. Я изо всех сил пытаюсь выяснить, какую структуру данных использовать. У меня есть игровая доска 4x4x4 с колышками в каждой (x, y) 2D-позиции. Бусы могут быть размещены на каждом колышке. Когда игрок получает 4 своих колышка подряд либо по одной оси, либо по диагонали (вдоль склона), он выигрывает игру.

Прямо сейчас я храню свои бусы (узлы) в трехмерном массиве по адресу каждая ячейка x, y, z ячейка массива. Но обходя это, чтобы найти соседние узлы к текущему узлу (A), а затем для каждого смежного узла (B) к A, который имеет валик того же типа, что и A, обходя соседние узлы, чтобы найти узел с тем же наклоном поскольку A / B кажется грубой силой, дорогой и пустой тратой вычислений.

Я думаю, что графики - это правильная структура данных для использования здесь, но я не уверен, должно ли это быть дерево с двойной связью -лист или что.

Я также упомянул matlab, потому что чувствую, что использование матрицы 3x3x3 на каждом узле имеет смысл использовать здесь. Но я не использовал линейную алгебру так долго, что трудно вспомнить, как я бы даже начал к ней подходить.

Если честно, я чувствую смущение, потому что изучал CS в колледже и знаю, что это, вероятно, довольно простой экзаменационный вопрос. Но на всю жизнь я не могу вспомнить свою линейную алгебру и то, какую структуру данных и алгоритм поиска было бы наиболее подходящим для использования здесь. Поиск в Google не дал много значимых результатов для трехмерных графиков для моего случая, поэтому я решил попробовать здесь. Я могу опубликовать код, который у меня есть, но я думаю, что я все равно подхожу к нему с неправильной точки зрения. Какие-нибудь мысли? Заранее спасибо!

...