Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/03/2007, 01:25
Avatar de DeeR
DeeR
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
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