Sooo ich hab das ganze Mal von grundauf überarbeitet. Die Bedingungen sind kaum wieder zu erkennen und aus dem Stack wurde ein eindimensionales Point Array^^ Sieht das jetzt so besser aus? Funzt das besser als der stack?
[code=Java] private static void berechne(int xCor, int yCor) {
zaehler++;
x = xCor;
y = yCor;
// System.out.println(x + " " + y);
//
// System.out.println(stack.toString());
//Früheres checkNext() und choseNext() zusammengeführt
//stack.contains prüft, ob der Punkt schonmal besucht wurde.
//Sollte dies der Fall sein, werden x und y zurückgesetzt.
if (((x+2) > 0 && (x+2) <= 5) && ((y+1) > 0 && (y+1) <= 5)){
x = x + 2;
y = y + 1;
int i = 0;
while ((gefunden == false) && (i < stack.length)){
if (stack[i] == (new Point(x,y)) ){
x = x - 2;
y = y - 1;
gefunden = true;
}
i++;
}
if ((gefunden == false) && (stack.length < 25)){
stack[stack.length + 1] = new Point (x,y);
nextX = stack[stack.length].x;
nextY = stack[stack.length].y;
berechne(nextX, nextY);
}
} [/code]
Edit: Ich arbeite momentan noch mit einem 5x5-Brett, daher stack.length <25