Hi ich versuche seit ein paar Stunden mir einen Rekursiven Algo zu basteln aber scheitere 
Also mein Vorhaben sieht so aus ich habe ein zweidim. Array.
Ich wollte eine Rekursive Funktion bauen wo ich eine Position eingeben von da aus wird dann eine 1 gesetzt alle zahlen drum herrum werden immer um eine zahl aufaddiert so das am ende zb wenn ich bei Position 1,1 beginne sowas zb herraus kommt.
Bisher hab ich diesen Crap gecodet...
Also mein Vorhaben sieht so aus ich habe ein zweidim. Array.
Code:
static int [][] feld =
{{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0}};
Ich wollte eine Rekursive Funktion bauen wo ich eine Position eingeben von da aus wird dann eine 1 gesetzt alle zahlen drum herrum werden immer um eine zahl aufaddiert so das am ende zb wenn ich bei Position 1,1 beginne sowas zb herraus kommt.
Code:
static int [][] feld =
{{2,3,4,5,6},
{2,1,2,3,4},
{3,2,3,4,5},
{4,3,4,5,6},
{5,6,7,8,9}};
Bisher hab ich diesen Crap gecodet...
Code:
import java.util.Arrays;
public class pathfinder {
static int [][] feld =
{{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0}};
public static void markiere(int feld[][], int y ,int x, int zähler){
zähler++;
if (x < 1) return;
if (x > feld.length-2) return;
if (y < 1) return;
if (y > feld.length-2) return;
if (feld[x][y] != 0){
feld[x][y] = zähler;
return;
}
feld[x][y] = zähler;
if (feld[x-1][y] !=0 && feld[x][y+1] != 0 && feld[x][y-1] != 0 ){
markiere(feld, y, x+1 , zähler);
}else if (feld[x+1][y] !=0 && feld[x][y+1] != 0 && feld[x][y-1] != 0 ){
markiere(feld, y, x-1 , zähler);
}else if (feld[x-1][y] !=0 && feld[x+1][y] != 0 && feld[x][y-1] != 0 ){
markiere(feld, y+1, x , zähler);
}else if (feld[x-1][y] !=0 && feld[x+1][y] != 0 && feld[x][y+1] != 0 ){
markiere(feld, y-1, x , zähler);
}
//markiere(feld, y, x+1 , zähler);
//markiere(feld, y, x-1 , zähler);
//markiere(feld, y+1, x , zähler);
//markiere(feld, y-1, x , zähler);
}
public static void main(String[] args) {
markiere(feld, 1, 1, 0);
for (int i = 0; i < feld.length; i++) {
System.out.println(Arrays.toString(feld[i]));
}
}
}
Ich weiss auch das es nicht läuft aber egal was ich progge entweder sind die zahlen total wahrlos oder es passiert nix :(