Я работаю над кодированием клона Tetris в XNA С# и не знаю, как лучше всего подойти к структуре структуры данных на высоком уровне.
Я полностью уверен в обнаружении столкновений, поворотах, анимации и т.д. Мне нужно знать, как лучше всего хранить "сброшенные блоки" - то есть блоки, которые больше не находятся под контролем игрока.
Я думаю, что каждый блок Tetromino должен храниться в своем собственном классе, который состоит из массива 4x4, так что блок можно легко повернуть. Проблема заключается в том, как я могу сохранить окончательное положение тетромино в сетку игры, а затем разрезать тетромино на отдельные блоки (для каждой ячейки), а затем установить основные положения сетки игры в соответствующие позиции, чтобы удерживать эти же блоки, а затем сразу же исчезнуть тетромино он достиг своей конечной позиции. Возможно, есть некоторый недостаток моего метода.
Должен ли я создать матрицу 10x20 для основной сетки игр, которую можно сохранить? или я должен использовать стеки или очереди, чтобы каким-то образом сохранить упавшие блоки. Или, может быть, есть какая-то лучшая структура методов/данных для хранения вещей?
Я уверен, что мой способ будет работать, но я обращаюсь к тому, чтобы узнать, знает ли кто-нибудь лучший способ или если мой способ достаточно хорош?
P.S. Не домашнее задание, это будет проект для моего портфолио. Спасибо.