1

В настоящее время я делаю игру Breakout, и я думал о представлении координат, а также о назначении именования для них. В этом конкретном примере у вас есть только две координаты x и y в двумерном пространстве.Представление и присвоение координат в n-мерном пространстве

enter image description here

Является лучшим представлением для (даже 2-мерных) координат-систем: массивы? Почему все же было бы полезно использовать int в таких ситуациях? Когда имеет смысл переключиться на массив? Представляется плохой практикой, когда вы используете переменные как способ описания порядка, в котором они появляются, как вы делаете с x и y в системе координат.

Что будет более эффективным? Будет ли работать с 2-мерным массивом быстрее, чем работать с двумя основными целыми числами? Будет ли обновление значения быстрее, чем целое число или массив? Я полагаю, что работать с массивами с большими размерами намного проще.

int[] coordinates = {1,2}; //initializing, which way is faster? 
int xPosition = 1; 
int yPosition = 2; 

xPosition = 2; //updating the coordinates, which way is faster? 
yPosition = 3; 
coordinates = {2, 3}; 

Чтобы закончить это безумие: Что бы лучшие имена переменных, если вы должны были выбрать int S? Это моя борьба:

int xPosition, yPosition //a bit long 
int xPos, yPos //looks short and clear to me, but maybe there is an 
//'normal' way to do it? 
int xpos, ypos //short and looks less clear but represents better imo 
// that it's one entity 
int positionX, positionY //auto-complete takes twice as long 
int posY, posX //harder to see what's meant here for me 

ответ

2

n-dim. Массивы как структура низкого уровня достаточно хороши и оптимальный выбор для вашего дела:

  • Эти координаты являются статическими по размеру.
  • Вы легко получаете доступ к элементам по их индексу.
  • Итерация намного быстрее и удобнее для чтения.
  • Не требуется поиск или сортировка альгортимов.

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

Надеюсь, это поможет.

+1

И я хотел бы использовать либо positionX, либо posX, потому что camelCase, но вы должны оставаться на одном соглашении, чтобы сохранить общий постоянный код. – lenhuy2106

+0

Я тоже пользуюсь posX, но хотел бы знать, что такое большинство –