Игра BattleShip IOS концептуальный дизайн


Ладно, это первый вопрос нуба, извините, если это глупо.

Мне просто интересно, для игры типа линкора будет ли пустой тратой памяти создавать набор объектов для каждой ячейки (10X10=100), со свойствами позиции(x,y) и состояния(пусто,попал, пропущен)?

Мне было интересно, не лучше ли было бы только создать сетку объектов и использовать методы для вычисления позиций ячеек всякий раз, когда это необходимо (например, при обработке выделения ячеек штрихами или рисованием)..

2 3

2 ответа:

Первое проблематично, потому что у вас могут быть корабли, которые сидят бок о бок или из конца в конец, и будет трудно узнать, когда один из них будет полностью уничтожен только из структур данных, которые вы описали. Два удара бок о бок могут быть двумя ударами по одному кораблю, двумя ударами по двум разным кораблям или даже потоплением самого маленького корабля.

Идите с последним ради здравомыслия.

Если бы я делал это,я бы держал его простым, имел 2-мерный массив, это ваша сетка 10 на 10.

Когда кто-то делает поворот, вычислите позицию и;

Если это промах, вставьте 0 в ячейку массива если это попадание, вставьте 1 в ячейку массива