Guten Tag,
ich soll ein Labyrinth programmmieren was aus einsen(1= der Weg ist begehbar) und aus nullen(0= Blockierung) besteht. Wenn dies getahn ist, soll noch geprüft werden ob es einen Weg von der Startstelle a[0][0] bis zum Endpunkt (Ecke unten rechts) a[5][5] gibt
so weit bin ich schon gekommen. Das Problem ist, glaube ich, das meine "durchsuche" Funktion nicht wirklich rekursiv arbeitet und sie sich immer nur a[1][1] anguckt. Hättet ihr eine Idee wie ich das ändern könnte?
ich soll ein Labyrinth programmmieren was aus einsen(1= der Weg ist begehbar) und aus nullen(0= Blockierung) besteht. Wenn dies getahn ist, soll noch geprüft werden ob es einen Weg von der Startstelle a[0][0] bis zum Endpunkt (Ecke unten rechts) a[5][5] gibt
Java:
public class Lab {
public static void main(String args []){
int [] a1={1,1,0,1,0};
int [] a2={0,1,0,1,1};
int [] a3={0,1,0,1,1};
int [] a4={0,1,0,1,1};
int [] a5={0,1,0,1,1};
int [][] matrix = {a1,a2,a3,a4,a5};
toString(matrix);
System.out.println(durchsuche((matrix), 1,1));
}
public static void toString(int [][] matrix){
for (int zeile = 0; zeile < matrix.length; zeile++) { // Strg leertaste + enter
for (int spalte = 0; spalte < matrix[zeile].length; spalte++){
System.out.print (matrix [spalte][zeile] + " ");
}
System.out.println();
}
}
public static boolean durchsuche(int[][] matrix, int i, int j){
if(matrix[i][j] == 1)
return true;
if(matrix[i][j]== 0 ){return false;}
return durchsuche(matrix,i+1,j)|| durchsuche (matrix,i-1,j)|| durchsuche(matrix,i,j+1)|| durchsuche(matrix,i,j-1);
}
}
so weit bin ich schon gekommen. Das Problem ist, glaube ich, das meine "durchsuche" Funktion nicht wirklich rekursiv arbeitet und sie sich immer nur a[1][1] anguckt. Hättet ihr eine Idee wie ich das ändern könnte?