Pregunta

Estoy tratando de imprimir una ruta de solución en un laberinto. Cada célula tiene un padre de donde vamos a esa celular. Estoy imprimiendo la ruta con el siguiente código.

                do{
                System.out.print("The parent of "+index1+","+index2+"=");
                System.out.println(theParents[index1][index2][0]+","+theParents[index1][index2][1]);
                index1=theParents[index1][index2][0];
                index2=theParents[index1][index2][1];
                }while(!(index1==2 && index2==1));

El problema es que se salta algunos células. No pude averiguar por qué?

el padre de 7,7= 6,7

el padre de 6,7= 5,7

el padre de 5,7= 4,7

el padre de 4,7= 3,7

el padre de 3,7= 2,7

El padre de 2,7= 1,7 // Como ves, ahora deberíamos imprimir 1,7 pero salta 1,7 y goto 1,6

el padre de 1,6= 1,5

El padre de 1,5= 2,5 // se salta 2,5 y vaya a 2,3 directamente

el padre de 2,4= 2,3

el padre de 2,3= 1,3

el padre de 1,2= 1,1

El padre de 1,1= 0,1

el padre de 0,0= 1,0

el padre de 1,0= 2,0

¿Qué está mal con el código?

¿Fue útil?

Solución

index1=theParents[index1][index2][0];
index2=theParents[index1][index2][1]; // the index1 here is already reassigned!

Ya ha reasignado el index1 cuando vaya a usarlo en la asignación de index2.

Necesitas algo así como

int newindex1 = theParents[index1][index2][0];
int newindex2 = theParents[index1][index2][1];

index1 = newindex1;
index2 = newindex2;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top