Hallo!!! kann jemand mir sagen wo mein Fehler ist???
********* *
* *
******** *
******** *
*******E *
* *
*H********
**** *
* *
**********
das ist mein Labyrinth und die programm dafür ist:
Danke für eure Hilfe
********* *
* *
******** *
******** *
*******E *
* *
*H********
**** *
* *
**********
das ist mein Labyrinth und die programm dafür ist:
Java:
import java.io.*;
public class Laby {
static boolean[][] resultField= new boolean[12][12];
static int exitX ;
static int exitY ;
static int hamsterX;
static int hamsterY;
static void readLaby(String fileName, char[][] board) {
FileReader file;
char ch;
try {
file= new FileReader(fileName);
for(int i= 1; i<11; i++) {
for(int j= 1; j<11; j++) {
if((ch= (char)file.read())!=-1) {
board[i][j] = ch;
}
}
ch= (char)file.read();
}
file.close();
}
catch (IOException ex) {
System.out.println(ex.toString());
}
}
private static void initField(char[][] board){
for(int i= 1; i<11; i++) {
for(int j= 1; j<11; j++) {
char ch = board[i][j];
switch (ch) {
case '*': resultField[i][j] = false; break;
case ' ': resultField[i][j] = true; break;
case 'E': exitX = i; exitY = j; break;
case 'H': hamsterX = i; hamsterY= j; break;
}
}
}
}
static void goHamster(char[][] board) {
if(board[hamsterX][hamsterY] == 'E'){
System.out.println("zielerreicht");
//print solution
return;
}
int countChoices = 0;
//above
if (resultField[hamsterX][hamsterY - 1 ] && board[hamsterX][hamsterY - 1 ] != 'v'){
countChoices++;
board[hamsterX][hamsterY - 1 ] = 'v';
hamsterX -= 1;
goHamster(board);
}
//down
if (resultField[hamsterX][hamsterY + 1 ] && board[hamsterX][hamsterY + 1 ] != 'v'){
countChoices++;
board[hamsterX][hamsterY + 1 ] = 'v';
hamsterX += 1;
goHamster(board);
}
//left
if (resultField[hamsterX - 1][hamsterY] && board[hamsterX - 1 ][hamsterY] != 'v'){
countChoices++;
board[hamsterX - 1][hamsterY] = 'v';
hamsterY -= 1;
goHamster(board);
}
//right
if (resultField[hamsterX + 1][hamsterY] && board[hamsterX + 1 ][hamsterY] != 'v'){
countChoices++;
board[hamsterX + 1][hamsterY] = 'v';
hamsterY += 1;
goHamster(board);
//dead end???
if(countChoices == 0)
return;
}
}
static void printLaby(char[][] board) {
for(int i= 0; i<10; i++) {
for(int j= 0; j<10; j++) {
System.out.print(board[i][j] );}
}
System.out.println();
}
public static void main(String[] args) {
char[][] board= new char[12][12];
String path= "Labyrinth1.txt";
readLaby(path, board);
printLaby(board);
initField(board);
}
}
Danke für eure Hilfe
Zuletzt bearbeitet: