Пожалуйста, извините, если мой код выглядит плохо, я очень плохо знаком с программированием.
Предполагается, что эта программа создаст 10 объектов с координатами x, y, z и найдет расстояние между ними.
Каждый раз, когда я запускаю метод main, расстояние всегда возвращает 0.
Почему это происходит?
public double distance(FireFlyBAS f1)
{
double fx = f1.x; //passed from FireFlyBAS f1
double fy = f1.y;
double fz = f1.z;
double xx = ((x - fx) * (x - fx)); //x,y,z are all created previously in the class
double yy = ((y - fy) * (y -fy));
double zz = ((z - fz) * (z -fz));
double distance = Math.sqrt(xx + yy + zz);
return distance;
}
public class DeathMatchBAS
{
public static void main(String args[])
{
double x = 0;
double y = 0;
double z = 0;
boolean l = true;
FireFlyBAS f1 = new FireFlyBAS(x,y,z,l);
FireFlyBAS f2 = new FireFlyBAS(x,y,z,l);
FireFlyBAS f3 = new FireFlyBAS(x,y,z,l);
FireFlyBAS f4 = new FireFlyBAS(x,y,z,l);
FireFlyBAS f5 = new FireFlyBAS(x,y,z,l);
FireFlyBAS f6 = new FireFlyBAS(x,y,z,l);
FireFlyBAS f7 = new FireFlyBAS(x,y,z,l);
FireFlyBAS f8 = new FireFlyBAS(x,y,z,l);
FireFlyBAS f9 = new FireFlyBAS(x,y,z,l);
FireFlyBAS f10 = new FireFlyBAS(x,y,z,l);
FireFlyBAS[] flies = {f1, f2, f3, f4, f5, f6, f7, f9, f9, f10};
int count = 10;
double distance = .5;
for(int i = 0; i < flies.length; i++)
{
l = true;
flies[i].getL();
if(l == true)
{
flies[i].move();
distance = flies[i].distance(flies[i]);
if(distance <= 1.0)
{
l = false;
count--;
System.out.println("There are " + count + " fireflies alive");
}
}
}
}
}