0

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

                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 的父级

代码有什么问题?

4

1 回答 1

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;
于 2012-05-20T17:57:12.513 回答