在图表中打印路径有什么问题?

时间:2012-05-20 17:53:19

标签: java while-loop do-while

我正在尝试在迷宫中打印解决方案路径。每个单元格都有一个父级,我们从那里进入该单元格。我正在使用以下代码打印路径。

                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));

问题是跳过一些细胞。我无法弄清楚为什么?

7,7 = 6,7的父母

父母6,7 = 5,7

5,7 = 4,7的父母

4,7 = 3,7的父母

3,7 = 2,7的父母

2,7 = 1,7 //的父母,你看我们现在应该打印1,7但跳过1,7并转到1,6

父母1,6 = 1,5

1,5 = 2,5的父亲//它跳过2,5并直接转到2,3

2,4 = 2,3的父母

2,3 = 1,3

的父母

1,2 = 1,1

的父级

1,1 = 0,1的父母

0,0 = 1,0

的父级

1,0 = 2,0的父母

代码有什么问题?

1 个答案:

答案 0 :(得分:1)

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

当您在index2的分配中使用它时,您已经重新分配了index1。

你需要像

这样的东西
int newindex1 = theParents[index1][index2][0];
int newindex2 = theParents[index1][index2][1];

index1 = newindex1;
index2 = newindex2;