我正在尝试在迷宫中打印解决方案路径。每个单元格都有一个父级,我们从那里进入该单元格。我正在使用以下代码打印路径。
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的父母
代码有什么问题?
答案 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;