Foro de elhacker.net

Programación => Java => Mensaje iniciado por: fprg en 12 Octubre 2015, 23:37 pm



Título: Laberinto en java
Publicado por: fprg en 12 Octubre 2015, 23:37 pm
Me gustaría hacer un laberinto en java y con un metodo comprobarsi todas las poiciones estan accesibles. Ya tengo el codigo para generar un laberinto, pero no se me ocurre como puedo comprobar si las posiciones estan accesibles. Tendria que hacer recursividad para ir pasando por cada posicion del array?
Gracias!!


Título: Re: Laberinto en java
Publicado por: 0roch1 en 12 Octubre 2015, 23:44 pm
Debes ser más especifico de cómo lo estás llevando a cabo.
De ser posible coloca algo de código.

Utiliza el Geshi para resaltar el código.
(https://i.imgur.com/ruDdAdP.png)


Título: Re: Laberinto en java
Publicado por: Devdox en 13 Octubre 2015, 13:40 pm
No estoy muy seguro a que te refieres, puede ser que lo que quieres decir es cómo comprobar que los caminos que has generado en tu laberinto son funcionales, es decir, están comunicados.

Hay de esto muchos ejemplos en Intenet, simplemente con escribir en Google algo como: "Creating a maze solving algorithm in Java" te saldrán muchísimos ejemplos.

Yo, si tuviera que hacerlo, dividiría esto en dos partes:
- La primera, comprobaría si el laberinto generado tiene al menos una solución (es decir, si al menos puedo llegar de una forma de la entrada a la salida), de no ser así, tendría que generar un nuevo laberinto o corregir este.
- La segunda parte, una vez que sabemos que al menos tiene una solución, sería comprobar que todos los caminos que hubiera en el laberinto estuvieran conectados entre sí, es decir, que no hubiera ninguna calle a la que no se pudiera entrar, de encontrar errores en esta fase, el algoritmo los corregiría.

Realmente, si no quieres calentarte mucho la cabeza, haz un algoritmo que solamente resuelva la primera parte, porque ya con esa parte, se puede decir que tienes un laberinto "funcional", y ya si quieres hacer algo ya más decente, pues ya sabes, haz las dos partes :D

P.D: Si nos explicaras mejor tu proyecto, o nos enseñaras algo de código, te podríamos ayudar mejor.


Título: Re: Laberinto en java
Publicado por: Ocelot1994 en 13 Octubre 2015, 15:57 pm
Resumidamente puedes crear varias variables segun cada posición del laberinto,es decir:
Crear una variable para las casillas que son el camino,otra para el obstaculo(serian las paredes) ,y otra libre para saber a cuales puedes acceder..
Para acceder con un if de este estilo:
Código
  1. if(Lab[X][Y] != libre)
  2.                      toret =false;
  3.  
  4.                  else {
  5.                        .........}
  6.  
Ese es un ejemplo pero obviamente habría que hacer mas comprobaciones ,según como te puedes mover o si la siguiente casilla es una pared..etc
Espero que sea esto a lo que te refieres.
Un saludo