- Mitglied seit
- 12.04.2003
- Beiträge
- 1.806
- Reaktionen
- 0
Hi,
ich sitze jetzt schon einige Zeit davor und bekomm nicht raus, wo der Fehler liegt.
Das ist die vereinfachte (es gibt noch drei //Move-If-Anweisungden drin) innere Schleife die ich habe. Ich habe extra den Pointer auf das letzte Listenelement gespeichert, da die Liste innerhalb der schleife verändert wird.
Allerdings bricht die Schleife niemals ab.
(Programm:
man hat ein Puzzel gegeben, à la
1 2 3 4
6 9 7 *
5 A B 8
D E F C
und das soll man mit Hilfe von Breitensuche in die richtige Reihenfolge bringen)
€dit: Ich hab auch schon probiert mir die Größe der Liste zu speichern und dann von ne for-schleife von 0 -> listengröße zu machen und in jeder Iteration den iterator zu inkrementieren, aber das funktioniert noch viel weniger und führt zu nem Programm abbruch
ich sitze jetzt schon einige Zeit davor und bekomm nicht raus, wo der Fehler liegt.
Code:
eol=Puzzle_List.end();
for(iter=Puzzle_List.begin(); iter!=eol; iter++){
if (ctr>0)
Puzzle_List.pop_front();
for(int i=0; i<4; i++){ //Find '*'
for(int j=0; j<4; j++){
if((*iter)->get_element(i,j)=='*'){
x=i;
y=j;
}
}
}
if(x-1>=0 &&(*iter)->last_move()!='d'){//Move '*' upwards
Puzzle=new CPuzzle;
*Puzzle=**iter;
Puzzle->swap(x, x-1, y, y);
Puzzle->set_last_move('u');
Puzzle_List.push_back(Puzzle);
}
ctr++;
cout << ctr << " " << k << endl;
}
Das ist die vereinfachte (es gibt noch drei //Move-If-Anweisungden drin) innere Schleife die ich habe. Ich habe extra den Pointer auf das letzte Listenelement gespeichert, da die Liste innerhalb der schleife verändert wird.
Allerdings bricht die Schleife niemals ab.
(Programm:
man hat ein Puzzel gegeben, à la
1 2 3 4
6 9 7 *
5 A B 8
D E F C
und das soll man mit Hilfe von Breitensuche in die richtige Reihenfolge bringen)
€dit: Ich hab auch schon probiert mir die Größe der Liste zu speichern und dann von ne for-schleife von 0 -> listengröße zu machen und in jeder Iteration den iterator zu inkrementieren, aber das funktioniert noch viel weniger und führt zu nem Programm abbruch
Zuletzt bearbeitet:


