Hallo zusammen 
Also ich muss ein Programm schreiben, dass den kuerzesten Weg in einem 11x11 Labyrinth findet. Der Eingang ist maze[0][1], der Ausgang maze[10][9]. Soweit hab ich:
Es ist noch nicht komplett fertig. Ich kann aber nicht verstehen wie man sich eigentlich bewegen soll, Im Internet habe ich so eine Loesung gefunden (bzgl, der Bewegungen):
Ich bin nicht ganz sicher ob es richtig ist. Sollen die Bewegungen eigentlich beliebig sein?
Danke im Voraus
Also ich muss ein Programm schreiben, dass den kuerzesten Weg in einem 11x11 Labyrinth findet. Der Eingang ist maze[0][1], der Ausgang maze[10][9]. Soweit hab ich:
Java:
public class MazeSolution extends Maze {
boolean[][] wegBisher = new boolean[11][11];
boolean[][] kuerzererWeg;
int LengthBesterWeg;
int zielx=10;
int ziely=9;
public static boolean[][] maze;
void copyfield(boolean [][]src, boolean[][] target){
for (int i=0; i<src.length; i++){
for (int j=0; j<src.length; j++){
target[i][j]=src[i][j];
}
}
}
public void walk(int x, int y, int curLength){
draw(x,y,wegBisher,kuerzererWeg);
if (maze[x][y]==true){
return;
//Im Falle von Wand
}
if (wegBisher[x][y]=true){
return;
//Falls das Feld schon mal durchgelaufen wurde(nicht im Kreis laufen)
}
if(curLength>LengthBesterWeg){
return;
}
if (x==zielx&&y==ziely){
//Falls den Ausgang erreicht wurde
copyfield(wegBisher, kuerzererWeg);
LengthBesterWeg=curLength;
}
//Bewegung nach oben
//Bewegung nach unten
//Bewegung nach rechts
//Bewegung nach links
public static void main(String[] args){
boolean[][] maze=Maze.generateMaze();
Es ist noch nicht komplett fertig. Ich kann aber nicht verstehen wie man sich eigentlich bewegen soll, Im Internet habe ich so eine Loesung gefunden (bzgl, der Bewegungen):
Java:
if (x > 0) {
walk(x - 1, y, curLength + 1); //rauf
} else if (x < wegBisher[0].length - 1) {
walk(x + 1, y, curLength + 1); //runter
}
else if (y > 0) {
walk(x, y - 1, curLength + 1); //links
} else if (y < wegBisher.length - 1) {
walk(x, y + 1, curLength + 1); //rechts
}
Ich bin nicht ganz sicher ob es richtig ist. Sollen die Bewegungen eigentlich beliebig sein?
Danke im Voraus