Для игры, которую я пишу, мне нужно найти целочисленное значение для расстояния между двумя наборами координат. Это 2D-массив, который содержит разные карты. (Как оригинальная зеландия). Чем дальше вы идете от центра (5,5), тем выше число должно быть, так как сложность врагов возрастает. В идеале это должно быть между 0 и 14. Массив - 11x11.C++: «Расстояние» между двумя координатами в 2D-массиве
Теперь, я пытался использовать Пифагор формулы, что я помню из лицейных, но это извергает номер переполнения. Я не могу понять, почему.
srand(rand());
int distance=sqrt(pow((5-worldx), 2)-pow((5-worldy), 2));
if(distance<0) //alternative to abs()
{
distance+=(distance * 2);
}
if(distance>13)
{
distance=13;
}
int rnd=rand()%(distance+1);
Monster testmonster = monsters[rnd];
Прежде всего, sqrt возвращает двойной, поэтому расстояние должно быть двойным – CoryKramer