Hallöchen miteinander,
ich bin grade dabei ein Programm zu schreiben das eine Methode rekursiv aufruft, der Code ist noch nicht optimiert und nicht grade schön, jedoch würde mich interessieren warum es nicht funktioniert und was ich ändern kann.
istFertig(), müsste nach dem ersten Durchgang bereits true ergeben. Das ganze basiert auf dem Rubriks Cube, ich habe anfangs nur eine Seite einmal gedreht und dementsprechend müsste er wie bereits gesagt, nach einem Durchgang, die Lösung parat haben...
Fehler: Exception in thread "main" java.lang.StackOverflowError
Ich hoffe mir kann jemand helfen,
mfg.
Luecx
ich bin grade dabei ein Programm zu schreiben das eine Methode rekursiv aufruft, der Code ist noch nicht optimiert und nicht grade schön, jedoch würde mich interessieren warum es nicht funktioniert und was ich ändern kann.
istFertig(), müsste nach dem ersten Durchgang bereits true ergeben. Das ganze basiert auf dem Rubriks Cube, ich habe anfangs nur eine Seite einmal gedreht und dementsprechend müsste er wie bereits gesagt, nach einem Durchgang, die Lösung parat haben...
Fehler: Exception in thread "main" java.lang.StackOverflowError
Java:
private String[] moveListSides = {"left","left","left","right","right","right","top","top","top","down","down","down","back","back","back","front","front","front"};
private String[] MoveListRets = {"normal","back","double","normal","back","double","normal","back","double","normal","back","double","normal","back","double","normal","back","double"};
public String[] solve(){
String[] lsg = new String[3];
solveComplete1(0);
return lsg;
}
private void solveComplete1(int zaehler){
if (istFertig() ){
System.out.println("Anzahl der benoetigten Zuege: "+zaehler);
}
else{
for (int i = 0; i< 18; i++){
flipSide(moveListSides[i],MoveListRets[i]);
solveComplete1(zaehler+1);
if (MoveListRets[i].equals("normal")){
flipSide(moveListSides[i],MoveListRets[i+1]);
}
if (MoveListRets[i].equals("back")){
flipSide(moveListSides[i],MoveListRets[i-1]);
}
if (MoveListRets[i].equals("double")){
flipSide(moveListSides[i],MoveListRets[i]);
}
}
}
}
Ich hoffe mir kann jemand helfen,
mfg.
Luecx