Я пытаюсь написать простую систему карт для игры. Он использует 2D вектор для хранения объектов области (фрагментов карты), и теперь я хочу сделать область 3х3 близкой. Области хранятся в:
std::vector<std::vector<Area>>
Моя текущая проверка близости использует:
bool area_exist;
if (x - 1 < 0 || y + 1 > max_y)
area_exist = true;
else
area_exist = false;
if (area_exist)
Area & p_area_right_top = areas[x - 1][y + 1];
if (x - 1 < 0)
area_exist = true;
else
area_exist = false;
if (area_exist)
Area& p_area_top = areas[x - 1][y];...
В этом варианте я должен сначала проверить наличие области.
Есть ли другой способ получить объекты близости 3х3?
Задача ещё не решена.
Других решений пока нет …