Hola, soy Abraham soy novatillo en Java.
Bueno os pongo en situacion, tengo un "tablero" con cuadriculas, y debo hallar el camino mas corto de una cuadricula, eso es facil y lo hice, el problema es el siguiente
en el codigo que os pondre al final, tengo un bucle while, que realiza el algoritmo para buscar el camino mas corto y va introduciendo las cuadriculas por las que debe ir en un array de cuadriculas, hasta ahi bien, todo correcto, pero cuando puse los tipicos imprimir en pantalla para ver los resultados, veo que dentro del bucle, el array recoge bien todo, pero nada mas salir del bucle y dentro del mismo metodo, el array solo ha recogido en todos sus espacios la cuadricula destino,
No veo por donde puede, fallar, puede que sea alguna estupidez mia, o algo tipo que el ambito del array es solo para dentro del bucle o algo asi que tenga java, ya os comente que soy novatillo y todavia no me aclaro mucho con el tema arrays.
En resumen, que el println de dentro del bucle sale todo bien, y justo el println despues del bucle solo sale la cuadricula de destino en todas las posiciones salvo la trayectoria[0]
el codigo de la clase es este
public class Movimiento
{
Cuadricula origen;
Cuadricula destino;
Cuadricula trayectoria[]=new Cuadricula[20];
Movimiento(Cuadricula o,Cuadricula d)
{
origen=o;
destino=d;
}
//Calculara la trayectoria para ir de origen a destino
void CalcularTrayectoria(Cuadricula o, Cuadricula d)
{
int i=0;
int j=0;
trayectoria[i]=o;
Cuadricula pos=new Cuadricula(o.x,o.y);
while (pos.x!=d.x || pos.y!=d.y)
{
if(pos.x!=d.x)
{
if(pos.x>d.x)
pos.x--;
else
pos.x++;
}
if(pos.y!=d.y)
{
if(pos.y>d.y)
pos.y--;
else
pos.y++;
}
i++;
trayectoria[i]=pos;
System.out.println("trayectoria["+i+"]="+trayectoria[i].x+"-"+trayectoria[i].y);
}
for(j=0;j<=i;j++)
System.out.println("trayectoria["+j+"]="+trayectoria[j].x+"-"+trayectoria[j].y);
}
Un saludo y gracias de antemano