Hey Leute,
ich arbeite an meinem Sudoku-Löser Programm, dass mitteln DLX das ganze löst.
Jetzt habe ich jedoch einen Stack Overflow Error in BlueJ. In den Zeilen 46 und 59 immer wieder...
Ich denke es kommt daher, dass die sich ständig gegenseitig aufrufen. Das Programm soll morgen auf dem Informationsabend unserer Schule vorgestellt werden, daher wäre ich für jede Hilfe dankbar.
Ich poste jetzt mal den Quelltext, der beiden Funktionen.
So, ich erklär mal die (geplante) Funktionsweise:
Der Funktion zeileloeschen wird eine int Zahl übergeben. Diese Zahl entspricht einer Zeile, die gelöscht werden soll. Dann geht das Programm mithilfe der for-Schleife alle Spalten der Tabelle durch, die ebenfalls gelöscht werden müssen, wenn der Wert 1 ist. Sobald der Erste Wert 1 ist, wird die for-Schleife Unterbrochen, und der Funktion spalteloeschen die betreffende Spalte übergeben, die daraufhin nach allen Zeilen mit einer 1 durchsucht werden soll. Irgendwann muss das ja wieder in den ursprünglichen Schleifen weiter gehen, oder überlade ich das Programm sooo derbe?
ich arbeite an meinem Sudoku-Löser Programm, dass mitteln DLX das ganze löst.
Jetzt habe ich jedoch einen Stack Overflow Error in BlueJ. In den Zeilen 46 und 59 immer wieder...
Ich denke es kommt daher, dass die sich ständig gegenseitig aufrufen. Das Programm soll morgen auf dem Informationsabend unserer Schule vorgestellt werden, daher wäre ich für jede Hilfe dankbar.
Ich poste jetzt mal den Quelltext, der beiden Funktionen.
Java:
public static void zeileloeschen(int zeile)
{
zeilegeloescht[zeile]=true;
for (int i=0; i<324; i++)
{
if (tabelle[zeile][i]==1)
{
spalteloeschen(i);
}
else
{}
}
}
public static void spalteloeschen(int spalte)
{
spaltegeloescht[spalte]=true;
for (int i = 0; i<729; i++)
{
if (tabelle[i][spalte]==1)
{
zeileloeschen(i);
}
else
{}
}
}
So, ich erklär mal die (geplante) Funktionsweise:
Der Funktion zeileloeschen wird eine int Zahl übergeben. Diese Zahl entspricht einer Zeile, die gelöscht werden soll. Dann geht das Programm mithilfe der for-Schleife alle Spalten der Tabelle durch, die ebenfalls gelöscht werden müssen, wenn der Wert 1 ist. Sobald der Erste Wert 1 ist, wird die for-Schleife Unterbrochen, und der Funktion spalteloeschen die betreffende Spalte übergeben, die daraufhin nach allen Zeilen mit einer 1 durchsucht werden soll. Irgendwann muss das ja wieder in den ursprünglichen Schleifen weiter gehen, oder überlade ich das Programm sooo derbe?