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 に答える