elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema laberinto java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema laberinto java  (Leído 5,992 veces)
fran774

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Problema laberinto java
« en: 4 Noviembre 2014, 09:55 am »

Hola

Me podrian ayudar con el algoritmo de este ejercicio que nose como hacerlo.


Un laberinto viene dado por una matriz cuadrada de tamaño nxn en la que cada posición puede ser un 0, un 1 o un asterisco. Un 1 significa que el camino está bloqueado, un 0 significa que el camino está abierto y un asterisco significa que el camino está abierto y además ganamos premio. En un laberinto puede haber como máximo un asterisco pero no es obligatorio que lo haya. En el laberinto se puede avanzar en cualquier dirección (horizontal, vertical y diagonal), siempre que el camino no esté bloqueado, a una posición vecina. Se pide un programa que comenzando en la posición (1,1) de la matriz (esquina superior izquierda), las filas y columnas comienzan a numerarse en 1, intente encontrar un camino a la posición (n,n), (esquina inferior derecha) .

El programa tomará como entrada un entero n en una línea y a continuación la matriz del laberinto dada en n líneas cada una con n valores binarios seguidos. Una de esas posiciones puede ser un asterisco; n será un entero positivo almacenable en un int, y devolverá la cadena "SI, CON PREMIO" si hay un camino directo (sin recorrer dos veces una misma posición) posible en el laberinto de salida que pasa por una posición con premio, "SI, SIN PREMIO" si hay algún camino en el laberinto de salida pero ninguno de los existentes pasa por una casilla con premio y "NO" sino hay camino posible de salida del laberinto. Cada salida terminará con un final de línea.

Ejemplo

Entrada

3

010

000

010

Salida

"SI, SIN PREMIO"


Saludos


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Problema laberinto java
« Respuesta #1 en: 4 Noviembre 2014, 09:59 am »

no se hacen tareas, se resuelven dudas...

coloca tu duda y lo que lleves de código (relevante a la duda) procura usar las etiquetas GeSHi, si tienes errores, colocalo exactamente como te lo da el compilador


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
fran774

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Problema laberinto java
« Respuesta #2 en: 4 Noviembre 2014, 10:04 am »

Hola

Porque nunca se me sale de la funcion reciproca. Quiero que cuando encuentra la salida 's' se salga .

Código
  1. import java.util.ArrayList;
  2.  
  3. public static boolean recorrer (char laberinto[][], int fil, int col){
  4.  
  5. int tam = laberinto.length;
  6.  
  7. //comprobar si es solucion
  8. if(laberinto[fil][col]=='s'){
  9. return true;
  10. }
  11.  
  12. //recorrido:
  13.  
  14. //Derecha
  15. if(col + 1 <= tam-1 && (laberinto[fil][col+1] == '0' || laberinto[fil][col+1]=='s')){
  16. recorrer(laberinto,fil,col+1);
  17. }
  18.  
  19. //Abajo
  20. if(fil+1 <= tam-1 && (laberinto[fil+1][col] == '0' || laberinto[fil+1][col]=='s')){
  21. recorrer(laberinto,fil+1,col);
  22.  
  23. }
  24. //Arrriba
  25. if(fil-1 >= 0 && (laberinto[fil-1][col] == '0' || laberinto[fil-1][col]=='s')){
  26. recorrer(laberinto,fil-1,col);
  27. }
  28.  
  29. //Izquierda
  30. if(col-1 >=0 && (laberinto[fil][col-1] == '0' || laberinto[fil][col-1]=='s')){
  31. recorrer(laberinto,fil,col-1);
  32. }
  33.  
  34. return false;
  35. }
  36.  
  37. }

Saludos
« Última modificación: 4 Noviembre 2014, 13:25 pm por fran774 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Interfaz Grafica en Java (Laberinto)
Java
cyberx4 2 13,811 Último mensaje 3 Septiembre 2005, 03:05 am
por cyberx4
[AYUDA][Problema] Cargar imagenes en Java (soy nuevo en Java)
Java
Noxware 3 4,126 Último mensaje 14 Septiembre 2014, 19:39 pm
por Noxware
laberinto en java
Java
fprg 1 2,663 Último mensaje 20 Octubre 2015, 13:19 pm
por explorer
MOVIDO: laberinto en java
Programación General
Eleкtro 0 1,889 Último mensaje 3 Octubre 2015, 18:38 pm
por Eleкtro
Laberinto en java
Java
fprg 3 5,319 Último mensaje 13 Octubre 2015, 15:57 pm
por Ocelot1994
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines