Código
pero al momento de querer buscar no logro que me muestre elr esultado, espero y me puedan orientar. gracias
ObtenerTxt txt = new ObtenerTxt(); txt.obtieneLaberinto(); } public class ObtenerTxt { char entradaE = 'e'; char salidaS = 's'; int inicioFila = 0; int inicioColumna = 0; int finFila = 0; int finColumna = 0; int tam = 0; char[][] lectura = new char[15][15]; public char[][] obtieneLaberinto() { try { int filas = 0; int columnas = 0; //JFileChooser file = new JFileChooser(); //int seleccion = file.showOpenDialog(null); //file.showOpenDialog(null); //if (seleccion == JFileChooser.APPROVE_OPTION) { while ((cadena = entrada.readLine()) != null) { for (int i = 0; i < cadena.length(); i++) { lectura[filas][columnas] = cadena.charAt(i); this.setLectura(lectura); this.setTam(tam = cadena.length()); if (cadena.charAt(i) == entradaE) { this.setInicioFila(filas); this.setInicioColumna(columnas); } if (cadena.charAt(i) == salidaS) { this.setFinFila(filas); this.setFinColumna(columnas); } columnas++; } filas++; columnas = 0; } //} for (int i = 0; i < lectura.length; i++) { for (int j = 0; j < lectura.length; j++) { } } return lectura; // TODO Auto-generated catch block e.printStackTrace(); return null; } } public int getTam() { return tam; } public void setTam(int tam) { this.tam = tam; } public char[][] getLectura() { return lectura; } public void setLectura(char[][] lectura) { this.lectura = lectura; } public int getInicioFila() { return inicioFila; } public void setInicioFila(int inicioFila) { this.inicioFila = inicioFila; } public int getInicioColumna() { return inicioColumna; } public void setInicioColumna(int inicioColumna) { this.inicioColumna = inicioColumna; } public int getFinFila() { return finFila; } public void setFinFila(int finFila) { this.finFila = finFila; } public int getFinColumna() { return finColumna; } public void setFinColumna(int finColumna) { this.finColumna = finColumna; } } y la parte de busqueda public class Laberinto { private static char L = 'L'; // pared private static char E = '0'; // espacio en blanco private static char MARCA = '*'; // señala las posiciones visitadas private static int x0 = 1; // inicio X private static int y0 = 0; // inicio Y /* * private static int xf = 11; // salida X private static int yf = 20; // * salida Y */ private static ObtenerTxt txt = new ObtenerTxt(); public static boolean valida(int f, int c) { // controla si la posicion esta fuera del laberinto if (f < 0 || f == txt.inicioFila || c < 0 || c == txt.inicioColumna) { return false; } // controla si la posicion ya fue visitada o es muro if (txt.getLectura()[f][c] == MARCA || txt.getLectura()[f][c] == L) { return false; } return true; } public static boolean recorre(int fil, int col) { boolean listo = false; // Indica si se ha encontrado la salida // Se marca la casilla como visitada txt.getLectura()[fil][col] = MARCA; // Condicion de termino de recursividad: " Llegamos a la salida ?" if (fil == txt.finFila - 2 && col == txt.finColumna - 1) { return (true); } if (!listo && valida(fil - 1, col)) { /* Intento hacia arriba */ listo = recorre(fil - 1, col); } if (!listo && valida(fil, col + 1)) { /* Intento a la derecha */ listo = recorre(fil, col + 1); } if (!listo && valida(fil + 1, col)) { /* Intento hacia abajo */ listo = recorre(fil + 1, col); } if (!listo && valida(fil, col - 1)) { /* Intento a la izquierda */ listo = recorre(fil, col - 1); } if (!listo) { txt.getLectura()[fil][col] = E; } // Se retorna true / false dependiendo de si se encontro solucion return (listo); } desplegarArreglo(txt.lectura); recorre(x0, y0); desplegarArreglo(txt.lectura); } public static void desplegarArreglo(char[][] matriz) { for (int i = 0; i < matriz.length; ++i) { for (int j = 0; j < matriz.length; ++j) { texto += matriz[i][j] + " "; } } } }
este es mi resultado
este es mi txt.
Código:
LLLLLLLLLLLLLLL
L0000000000000L
L0000000000000L
L0000000000000L
L0000000000000L
L0000000000000L
L00000s0000000L
L0000000000000L
L0000000000000L
L000000000e000L
L0000000000000L
L0000000000000L
L0000000000000L
L0000000000000L
LLLLLLLLLLLLLLL
la parte e = entrada, s= salida.
me podrian ayudar, ya que no estoy muy familiarizado con los arreglos. o explicar por favor gracias
Mod: Los códigos deben ir en etiquetas GeSHi