Foros del Web » Programando para Internet » PHP »

Desafio : Laberinto

Estas en el tema de Desafio : Laberinto en el foro de PHP en Foros del Web. Que tal a todos, se me ocurrio Hacer un pequeño Desafio entre nosotros (los usuarios del foro php),mas que nada para ponernos en practicas :) ...

  #1 (permalink)  
Antiguo 14/03/2007, 01:25
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 21 años
Puntos: 17
Desafio : Laberinto

Que tal a todos, se me ocurrio Hacer un pequeño Desafio entre nosotros (los usuarios del foro php),mas que nada para ponernos en practicas :) y participar mas. El Desafio o mini Concurso que se me ocurrio es el Siguiente :

Desafio : Laberinto Martes 14 Marzo 2007
Consiste de un Laberinto en una Matriz 24x24 , donde la Pared es representada por un 1 , Espacio Libre por un 0 y el Queso por un 2

El Laberinto es representado por una Matriz 24x24, inicialmente se encuentra sin el queso (solo paredes 1 y espacios libres 0)

Luego aplicamos la funcion queso la cual aleatoriamente inserta en un espacio libre el Queso (2) en el laberinto


¿ Que debemos Realizar ?
Un Algoritmo,Script, Funcion, Clase, etc ... que simule un Raton, es decir comienze en un Punto Inicial (puede ser aleatorio este punto) y luego valla avanzando hasta encontrar el queso, debe entregar el camino recorrido hasta el queso , la posicion del queso y numeros de casillas visitas. Pueden utilizar cualquier tecnica de Programacion (Dividir y Venceras, Recursivas, Iterativas, Vuelta Atras, etc ..)

Las soluciones la pueden postear apartir del dia Domingo 25 Marzo 2007 (Para que todos tengan la Oportunidad de Participar)

*** Se Adjunta ***
- Matriz del Laberinto (Con Paredes y Espacios Vacios)
Código PHP:
<?

$array 
= array (

=> array(

    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
10 => 1,
    
11 => 1,
    
12 => 1,
    
13 => 1,
    
14 => 1,
    
15 => 1,
    
16 => 1,
    
17 => 1,
    
18 => 1,
    
19 => 1,
    
20 => 1,
    
21 => 1,
    
22 => 1,
    
23 => 1,
    ),
=> array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 1,
    
10 => 0,
    
11 => 0,
    
12 => 0,
    
13 => 0,
    
14 => 0,
    
15 => 1,
    
16 => 0,
    
17 => 0,
    
18 => 0,
    
19 => 0,
    
20 => 0,
    
21 => 0,
    
22 => 0,
    
23 => 1,
    ),
=> array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 0,
    
=> 1,
    
10 => 1,
    
11 => 1,
    
12 => 1,
    
13 => 1,
    
14 => 0,
    
15 => 1,
    
16 => 0,
    
17 => 0,
    
18 => 1,
    
19 => 0,
    
20 => 1,
    
21 => 0,
    
22 => 0,
    
23 => 1,
    ),
=> array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
10 => 0,
    
11 => 0,
    
12 => 0,
    
13 => 0,
    
14 => 0,
    
15 => 1,
    
16 => 1,
    
17 => 0,
    
18 => 1,
    
19 => 1,
    
20 => 1,
    
21 => 0,
    
22 => 1,
    
23 => 1,
    ),
=> array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
10 => 0,
    
11 => 1,
    
12 => 0,
    
13 => 1,
    
14 => 0,
    
15 => 1,
    
16 => 0,
    
17 => 0,
    
18 => 0,
    
19 => 0,
    
20 => 0,
    
21 => 0,
    
22 => 0,
    
23 => 1,
    ),
=> array(

    
=> 1,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
10 => 1,
    
11 => 1,
    
12 => 0,
    
13 => 1,
    
14 => 0,
    
15 => 1,
    
16 => 1,
    
17 => 0,
    
18 => 1,
    
19 => 0,
    
20 => 1,
    
21 => 0,
    
22 => 0,
    
23 => 1,
    ),
=> array(

    
=> 1,
    
=> 1,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
10 => 0,
    
11 => 0,
    
12 => 0,
    
13 => 1,
    
14 => 1,
    
15 => 1,
    
16 => 1,
    
17 => 1,
    
18 => 1,
    
19 => 0,
    
20 => 1,
    
21 => 1,
    
22 => 1,
    
23 => 1,
    ),
=> array(

    
=> 1,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
=> 1,
    
=> 1,
    
=> 1,
    
10 => 1,
    
11 => 1,
    
12 => 0,
    
13 => 0,
    
14 => 0,
    
15 => 0,
    
16 => 0,
    
17 => 0,
    
18 => 0,
    
19 => 0,
    
20 => 0,
    
21 => 0,
    
22 => 0,
    
23 => 1,
    ),
=> array(

    
=> 1,
    
=> 1,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
10 => 0,
    
11 => 1,
    
12 => 0,
    
13 => 1,
    
14 => 1,
    
15 => 1,
    
16 => 0,
    
17 => 1,
    
18 => 1,
    
19 => 0,
    
20 => 1,
    
21 => 1,
    
22 => 0,
    
23 => 1,
    ),
=> array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
10 => 1,
    
11 => 1,
    
12 => 0,
    
13 => 1,
    
14 => 0,
    
15 => 1,
    
16 => 0,
    
17 => 0,
    
18 => 1,
    
19 => 0,
    
20 => 1,
    
21 => 0,
    
22 => 0,
    
23 => 1,
    ),
10 => array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
10 => 0,
    
11 => 0,
    
12 => 0,
    
13 => 1,
    
14 => 0,
    
15 => 1,
    
16 => 0,
    
17 => 1,
    
18 => 1,
    
19 => 0,
    
20 => 1,
    
21 => 0,
    
22 => 1,
    
23 => 1,
    ),
11 => array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
10 => 1,
    
11 => 0,
    
12 => 1,
    
13 => 1,
    
14 => 0,
    
15 => 0,
    
16 => 0,
    
17 => 1,
    
18 => 0,
    
19 => 0,
    
20 => 1,
    
21 => 0,
    
22 => 0,
    
23 => 1,
    ),
12 => array(

    
=> 1,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
10 => 1,
    
11 => 0,
    
12 => 0,
    
13 => 1,
    
14 => 0,
    
15 => 1,
    
16 => 1,
    
17 => 1,
    
18 => 1,
    
19 => 1,
    
20 => 1,
    
21 => 0,
    
22 => 1,
    
23 => 1,
    ),
13 => array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 1,
    
=> 1,
    
=> 1,
    
10 => 1,
    
11 => 1,
    
12 => 0,
    
13 => 1,
    
14 => 0,
    
15 => 1,
    
16 => 0,
    
17 => 0,
    
18 => 0,
    
19 => 0,
    
20 => 0,
    
21 => 0,
    
22 => 0,
    
23 => 1,
    ),
14 => array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 0,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
10 => 1,
    
11 => 0,
    
12 => 0,
    
13 => 1,
    
14 => 0,
    
15 => 1,
    
16 => 1,
    
17 => 1,
    
18 => 1,
    
19 => 0,
    
20 => 1,
    
21 => 1,
    
22 => 0,
    
23 => 1,
    ),
15 => array(

    
=> 1,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
10 => 0,
    
11 => 0,
    
12 => 1,
    
13 => 1,
    
14 => 0,
    
15 => 0,
    
16 => 0,
    
17 => 0,
    
18 => 0,
    
19 => 0,
    
20 => 0,
    
21 => 0,
    
22 => 0,
    
23 => 1,
    ),
16 => array(

    
=> 1,
    
=> 1,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 0,
    
=> 1,
    
10 => 0,
    
11 => 0,
    
12 => 1,
    
13 => 0,
    
14 => 0,
    
15 => 1,
    
16 => 1,
    
17 => 0,
    
18 => 0,
    
19 => 1,
    
20 => 0,
    
21 => 1,
    
22 => 1,
    
23 => 1,
    ),
17 => array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 1,
    
10 => 1,
    
11 => 0,
    
12 => 1,
    
13 => 0,
    
14 => 1,
    
15 => 0,
    
16 => 1,
    
17 => 0,
    
18 => 1,
    
19 => 1,
    
20 => 0,
    
21 => 1,
    
22 => 0,
    
23 => 1,
    ),
18 => array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 1,
    
=> 0,
    
=> 0,
    
10 => 1,
    
11 => 0,
    
12 => 0,
    
13 => 0,
    
14 => 1,
    
15 => 0,
    
16 => 1,
    
17 => 0,
    
18 => 0,
    
19 => 1,
    
20 => 0,
    
21 => 1,
    
22 => 0,
    
23 => 1,
    ),
19 => array(

    
=> 1,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
10 => 1,
    
11 => 0,
    
12 => 1,
    
13 => 0,
    
14 => 1,
    
15 => 0,
    
16 => 0,
    
17 => 0,
    
18 => 1,
    
19 => 1,
    
20 => 0,
    
21 => 0,
    
22 => 0,
    
23 => 1,
    ),
20 => array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
10 => 1,
    
11 => 0,
    
12 => 1,
    
13 => 0,
    
14 => 1,
    
15 => 1,
    
16 => 1,
    
17 => 0,
    
18 => 0,
    
19 => 1,
    
20 => 1,
    
21 => 1,
    
22 => 0,
    
23 => 1,
    ),
21 => array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
10 => 0,
    
11 => 0,
    
12 => 1,
    
13 => 0,
    
14 => 0,
    
15 => 0,
    
16 => 1,
    
17 => 0,
    
18 => 1,
    
19 => 1,
    
20 => 1,
    
21 => 1,
    
22 => 0,
    
23 => 1,
    ),
22 => array(

    
=> 1,
    
=> 0,
    
=> 1,
    
=> 0,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 0,
    
=> 0,
    
10 => 0,
    
11 => 1,
    
12 => 1,
    
13 => 1,
    
14 => 0,
    
15 => 0,
    
16 => 1,
    
17 => 0,
    
18 => 0,
    
19 => 0,
    
20 => 0,
    
21 => 0,
    
22 => 0,
    
23 => 1,
    ),
23 => array(

    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
=> 1,
    
10 => 1,
    
11 => 1,
    
12 => 1,
    
13 => 1,
    
14 => 1,
    
15 => 1,
    
16 => 1,
    
17 => 1,
    
18 => 1,
    
19 => 1,
    
20 => 1,
    
21 => 1,
    
22 => 1,
    
23 => 1,
    ),
) ;
?>
- Funcion queso (Inserta el Queso en una Posicion Vacia del Laberinto)
Código PHP:
<?
function queso(&$array,$p NULL)
{
     
// Ingresar Queso al Laberinto
     
$d=count($array);
     
$t[0]=rand(0,($d-1));
     
$t[1]=rand(0,($d-1));
    
    if ( 
$array[$t[0]][$t[1]] == )
    {
         
// Posicion Vacia
         // Guardamos Queso
         
$array[$t[0]][$t[1]] = 2;
         return 
TRUE;
    }      
     else
     {
        return ( 
queso($array) );
    }
}

?>
Yapoz muxaxos animemonos y participemos del desafio

==============================
Soluciones Recibidas hasta el Momento

Solucion de nicolaspar
Solucion de IngProd
Solucion de Panino5001
Solucion de DeeR
Solucion de Falhor
Solucion de IngProdr
Solucion de okram

Última edición por DeeR; 18/03/2007 a las 19:22 Razón: Olvido
  #2 (permalink)  
Antiguo 14/03/2007, 09:47
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 21 años
Puntos: 17
Re: Desafio : Laberinto

Yapoz animense amigos del PHP :P
Yo ya toy trabajando en ello :P y al parecer voy por buen camino :)

Posteen pos los q por lo menos esten intentando el desafio :P
  #3 (permalink)  
Antiguo 14/03/2007, 18:27
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 4 meses
Puntos: 102
Re: Desafio : Laberinto

Saludos Deer... sin leer detenidamente de lo que trata el asunto y sin poder participar, aplaudo tu iniciativa . Creo se merece estar marcada como importante al menos hasta que dure el concurso. Ojalá haya muchos participantes.

Sugiero que para la otra se haga en un fin de semana que no todos tenemos tiempo :-/.

Suerte
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 14/03/2007, 19:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: Desafio : Laberinto

Me parece interesante pero concuerdo con jam1138, en un fin de semana estaria muchisimo mejor.
  #5 (permalink)  
Antiguo 14/03/2007, 20:58
Avatar de Falhor  
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 19 años
Puntos: 5
Re: Desafio : Laberinto

Por qué a partir del 17 de marzo?

Voy a ver si puedo hacer algo pero estoy muy ocupado durante la semana.
  #6 (permalink)  
Antiguo 14/03/2007, 21:10
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 21 años
Puntos: 17
Re: Desafio : Laberinto

OK es verdad, demos mas plazo, ademas nos permite tener un codigo mejorado :) , el dia Domingo 25 de Marzo tendremos que postear los Scripts de nosotros ( los concursantes )

Saludos :P
  #7 (permalink)  
Antiguo 15/03/2007, 09:46
Avatar de seyacat  
Fecha de Ingreso: agosto-2006
Mensajes: 382
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Desafio : Laberinto

Me encanta la idea.. voy a intentarlo :P
  #8 (permalink)  
Antiguo 15/03/2007, 09:54
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 9 meses
Puntos: 33
Re: Desafio : Laberinto

Un reto excelente! lo intentare!

Saludillos.
  #9 (permalink)  
Antiguo 16/03/2007, 15:24
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años, 1 mes
Puntos: 34
Re: Desafio : Laberinto

Muy bueno!, veré si este finde me puedo poner un rato!

Ahora, una pregunta boludona DeeR...si o si tiene que ir el ratón al queso por si solo? o puedo "unir a ambos"? o sea, armar un camino directo entre ratón>queso (porque saber donde está el queso es simple).
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #10 (permalink)  
Antiguo 16/03/2007, 22:15
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años, 1 mes
Puntos: 34
Re: Desafio : Laberinto

Me puse a jugar con esto, y es mas complicado de lo que parecía a simple vista.

El hecho es que pese a quejarme lo he terminado, y funciona y todo :P

Lo deje acá
para que puedan ver el resultado, y estaré esperando que me informen donde enviar el script.

También espero ver otras respuestas (en su debido momento), seguro hay soluciones mas óptimas a la que propuse.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #11 (permalink)  
Antiguo 17/03/2007, 14:55
 
Fecha de Ingreso: marzo-2007
Mensajes: 78
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Desafio : Laberinto

Aquí está la versión 0.1 del mío ... aunque estaría bien que pusieramos más retos, como encontrar el camino más corto... por ejemplo.

www . ingprod.com/laberinto/mostrar.php
  #12 (permalink)  
Antiguo 17/03/2007, 15:02
Avatar de Falhor  
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 19 años
Puntos: 5
Re: Desafio : Laberinto

Muy buenos, aunque el de ingprod no lo entiendo xD...

Última edición por Falhor; 17/03/2007 a las 23:49
  #13 (permalink)  
Antiguo 17/03/2007, 18:40
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Re: Desafio : Laberinto

Pongo mi solución, luego la iré mejorando:
http://www.disegnocentell.com.ar/ali...into_class.php
Las posiciones del ratón y el queso por ahora son aleatorias.
  #14 (permalink)  
Antiguo 17/03/2007, 18:49
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Desafio : Laberinto

Me pareceque no estoy entendiendo este asunto muy bien...

Veamos:

http://www.ingprod.com/laberinto/mostrar.php?i=7&j=1

xq se pinta casi todo el laberinto? (digo casi, xq solo falta que se pinte el queso) cual es el objetivo? pense que solo se tenia que pintar un camino, pero...

Un saludo,
  #15 (permalink)  
Antiguo 17/03/2007, 18:52
Avatar de Falhor  
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 19 años
Puntos: 5
Re: Desafio : Laberinto

Se pinta todo por la posición del queso, probá apretar otra posición, se muestra menos, pero igual no es un camino derecho... Igual ahora lo mejoró, antes no se entendía.

Última edición por Falhor; 17/03/2007 a las 23:49
  #16 (permalink)  
Antiguo 17/03/2007, 18:59
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 19 años, 5 meses
Puntos: 6
Re: Desafio : Laberinto

Cita:
Iniciado por Panino5001 Ver Mensaje
Pongo mi solución, luego la iré mejorando:
http://www.disegnocentell.com.ar/ali...into_class.php
Las posiciones del ratón y el queso por ahora son aleatorias.
Me da la sensación que tu raton tiene "mas o menos una idea" de la ubicacion del queso, es asi? o quiza no estes pintando todas las casillas que verificas?

Si no es asi, te felicito, por el momento parece una de las mejores soluciones


Cita:
Iniciado por Falhor Ver Mensaje
igual no es un camino derecho
Es que me parece que la idea era simular un raton, si simulams un raton metido en un laberinto me parece que este no tendria forma de saber donde esta el queso... por lo cual, seria muy dificil que haga un camino derecho y sin dar vueltas. Creo que por este motivo el de ingprod y nicolaspar dan tantas volteretas, porque sus ratoncitos no tienen ni idea de donde esta el queso... y solo van dando un paseo por el laberinto hasta que encuentran el queso.
__________________
Federico.

Mi página: www.jourmoly.com.ar

Última edición por Fridureiks; 17/03/2007 a las 19:05
  #17 (permalink)  
Antiguo 17/03/2007, 19:35
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 21 años
Puntos: 17
Re: Desafio : Laberinto

Que bueno que les guste el Desafio, lo ideal esque poco a poco vallamos proponiendo mas desafio.

Mi solucion, aunque la quiero mejorar, llevando todos a clases :P
http://deerme.org/raton/test.php
Punto Rosado el Inicio del Raton
Puntos Verdes Camino seguido
Punto Amarillo Queso


El fin, la gracia del Script es una Funcion Recursiva con Procesos Backtraing (Vuelta Atras) y un Procedimiento de Algoritmos Probabilísticos.

Lo explico bien, Primero ubico el queson al azar en alguna posicion, luego ubico al raton en una posicion al azar tambien, luego el raton verifica a que posiciones el puede avanzar (arriba derecho izquerda abajo) , y a los espacios libres que puede avanzar, lo elige aleatoriamente (la idea de un algoritmo probabilistico), entoncesa si hasta encontrar el queso.

Lo mejor de que tome el camino al azar, es que no siempre recorre el mismo camino, a si que para unas mismas posiciones, encuentra distintos caminos, y a la larga creo que es mas efectivo , de que siempre elige un mismo camino (ejemplo primero izquerda, si no arriba, si no abajo si no derecha).


Preparemos un poquito mejor los codigos, y dentro de las semana los publicamos :)

Saludos

Última edición por DeeR; 17/03/2007 a las 19:36 Razón: xD
  #18 (permalink)  
Antiguo 17/03/2007, 20:50
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años, 1 mes
Puntos: 34
Re: Desafio : Laberinto

En mi caso si, es un ratón común y corriente, es más, es tanta el hambre que tiene que se da contra las paredes, tal vez le haga falta algún cheat que lo ayude un poco :P

Creo que la mayoría usamos la misma lógica, y veremos cuando expongamos los códigos, analizándolos, cual es el que tiene menos proceso y mas efectividad, estoy seguro que aprenderemos con estas consignas a abrir la mente un poco mas.

PD: Me gusto DeeR lo de algoritmo probabilistico (ya ni lo recordaba)...pero, para el caso no se vuelve un método/algoritmo probabilistico del monte carlo?
Realmente me parece que se puede inventar algo que le de un poco de sabiduría al ratón, si bien personalmente no pude darle mas que 2hs, se que sacare ideas claras de todos los códigos expuestos.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #19 (permalink)  
Antiguo 17/03/2007, 20:59
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Re: Desafio : Laberinto

Ja, ja, en mi caso es un ratón bastante ineficiente: lo único que hace es backtracking. Y no va tan derecho: en realidad, no tiene idea de donde está el queso, sólo intenta hasta conseguirlo.

Última edición por Panino5001; 17/03/2007 a las 21:55
  #20 (permalink)  
Antiguo 17/03/2007, 23:13
Avatar de Falhor  
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 19 años
Puntos: 5
Re: Desafio : Laberinto

Lo pude hacer =D, no era difícil, sólo tenía que ponerme a pensar.
Nicopar, te robé las imágenes, espero que no te moleste, si querés que las saque solo decime y busco otras.

Este es mi trabajo: Ratón!

Saludos.

PD: El azul es el inicio del ratón, el amarillo el del queso, obviamente lo marrón es la pared y lo blanco el espacio vacío, y, por lo tanto, lo verde es el camino.

Última edición por Falhor; 19/03/2007 a las 20:57
  #21 (permalink)  
Antiguo 18/03/2007, 09:22
 
Fecha de Ingreso: marzo-2007
Mensajes: 78
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Desafio : Laberinto

Cita:
Iniciado por okram Ver Mensaje
Me pareceque no estoy entendiendo este asunto muy bien...

Veamos:

xq se pinta casi todo el laberinto? (digo casi, xq solo falta que se pinte el queso) cual es el objetivo? pense que solo se tenia que pintar un camino, pero...

Un saludo,
Hola,
Pinta casi todo el laberinto porque es un algoritmo MALISIMO... busca a lo bruto, por eso es la primera aproximación... y yo decidí pintar todo el camino por el que pasa el ratón antes de ecnontrar el queso.

Aquí está otra solución... de entre todos los caminos que recorre el ratón, memoriza sólo el más corto. He usado un poco de bioinformática, y al igual que las hormigas, mi ratón deja rasto para que la búsqueda sea eficiente..

http ://lafaa.iespana.es/laberinto/mostrar.php
  #22 (permalink)  
Antiguo 18/03/2007, 09:45
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años, 1 mes
Puntos: 34
Re: Desafio : Laberinto

Cita:
Nicopar, te robé las imágenes, espero que no te moleste, si querés que las saque solo decime y busco otras.
No hay problema ;)

Cita:
Aquí está otra solución... de entre todos los caminos que recorre el ratón, memoriza sólo el más corto. He usado un poco de bioinformática, y al igual que las hormigas, mi ratón deja rasto para que la búsqueda sea eficiente..
Claro, visualmente está mucho mejor, pero el proceso es mayor, ya que estas haciendo varios caminos. De todas maneras me gusta :)
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #23 (permalink)  
Antiguo 18/03/2007, 16:17
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Re: Desafio : Laberinto

Hola:

Enhorabuena por la iniciativa, y por supuesto por los trabajos.

Me parece que deberían diferenciarse las casillas visitadas de las que forman el camino... por ejemplo dejar en verde las que forman el camino, y las que se visitan y no valen ponerlas de otro color (rojo, por decir uno)...
Y en unos casos se pone la ubicación del ratón y en otras supongo que se supone que entra por una esquina ¿?... tal vez sea mejor indicar los 2 elementos.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #24 (permalink)  
Antiguo 18/03/2007, 16:40
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 21 años
Puntos: 17
Re: Desafio : Laberinto

Todavia esperamos mas soluciones :) , animense los que no han posteado :P

Respecto a las soluciones, seria bueno agregarle la opcion de
- Elegir la Pos del Raton
- Elegir la Pos del Queso
- Insertar Nuevo Laberinto

Lo ideal es que el codigo sea lo mas general, para que si cambiamos el laberinto, el script siga funcionando, ¿ Que formato de Laberinto debe aceptar ? Un Simple texto como el siguiente
Asterisco : Pared
Espacio : Espacio Libre

Código:
*********
* * * * *
* * * * *
*   * * *
**      *
*   **  *
*********
Ya que la Prueba para medir los Scripts, será un Mapa de 50x50 , tiempo de ejecucion de los Scripts, Codigo Fuente , y los usuarios del Foro podran votar a su elecion la solucion que mas les gusto :)

Saludos
  #25 (permalink)  
Antiguo 18/03/2007, 17:32
Avatar de Falhor  
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 19 años
Puntos: 5
Re: Desafio : Laberinto

Pero con permitir crear un laberinto probablemente se cree un loop infinito... Si el queso nace en una posición inalcanzable para el ratón... Está bien que no pasa nada si pasa eso pero sería menos funcional, por decirlo de alguna forma...

Saludos.
  #26 (permalink)  
Antiguo 18/03/2007, 17:47
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 21 años
Puntos: 17
Re: Desafio : Laberinto

Cita:
Iniciado por Falhor Ver Mensaje
Pero con permitir crear un laberinto probablemente se cree un loop infinito... Si el queso nace en una posición inalcanzable para el ratón... Está bien que no pasa nada si pasa eso pero sería menos funcional, por decirlo de alguna forma...

Saludos.
mm mas que nada, mejor que no permita esa opcion, si solamente, si cambiamos el $array , por otro laberinto mas grande, el script siga igual de funcional.

Estaba pensando en un nuevo laberinto de 50x50 o 100x100 , igual es algo grande, pero creo que seria una buena alternativa para probar los rendimientos de los scripts :P
  #27 (permalink)  
Antiguo 18/03/2007, 19:09
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Desafio : Laberinto

Bien, no podia quedar fuera de esta competencia, y aqui esta mi script en su version 0.1...

Función Queso

Yo no entiendo eso de funcion recursiva con procesos backtraing (Vuelta Atras) ni procedimiento de algoritmos probabilísticos... pero en fin, eso me salio... El script permite elegir el sitio de inicio del ratón y la ubicación del queso. Además, el camino mostrado es el más corto que el ratón encontró...

A lo largo de la semana vere si puedo mejorarlo...

Un saludo,

Última edición por okram; 18/03/2007 a las 19:15
  #28 (permalink)  
Antiguo 18/03/2007, 19:30
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 21 años
Puntos: 17
Re: Desafio : Laberinto

Me gusto tu Script okram , por que devuelve el camino mas corto (igual como la segunda solucion de IngProd) :)

jeje respecto a lo otro, son estilos de programacion que generalmente te enseñan en el tipico ramo "Algoritmos y Estructuras de Datos" , Funcion Recursiva , Vuelta Atras, etc

Saludos
  #29 (permalink)  
Antiguo 18/03/2007, 21:17
Avatar de Falhor  
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 19 años
Puntos: 5
Re: Desafio : Laberinto

No se me ocurre ninguna idea a mí para que devuelva el camino más corto... Muy bueno el de okram.

Y con respecto a lo de algoritmos, yo no sabía sobre eso pero naturalmente pensaba por ejemplo "Para que el ratón llegue al queso tiene que tomar un numero al azar, dependiendo de el numero la dirección, una vez que hace eso si el número del array es 1 que vuelva al random y si en esa posición hay un 2 que haga un stop al bucle". Obviamente más detalladamente, pero creo que es algo parecido y que si no hiciera eso no podría hacer nada.
  #30 (permalink)  
Antiguo 19/03/2007, 04:55
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Desafio : Laberinto

Bien, hice un pequeño añadido al script. Ahora muestra además las coordenadas de la secuencia que el ratón siguió para encontrar al queso... Además, mi server parece que ya funciona

Función QueSo

Un saludo,

Última edición por okram; 24/03/2007 a las 16:42
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 00:51.