Foros del Web » Programando para Internet » PHP »

Soluciones para el Desafío del Laberinto

Estas en el tema de Soluciones para el Desafío del Laberinto en el foro de PHP en Foros del Web. En mi caso, la solucion para que no se pase el raton por el lado del queso sin comerselo, es un metodo mas a la ...

  #31 (permalink)  
Antiguo 30/03/2007, 15:55
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Soluciones para el Desafío del Laberinto

En mi caso, la solucion para que no se pase el raton por el lado del queso sin comerselo, es un metodo mas a la clase..

Código PHP:
function checkAround($a) {
    
$found = array();
    
$xy = &$this->current;
        
    if (
in_array(UP$a) && $this->maze[$xy[1]-1][$xy[0]] == CHEESE)    $found[] = UP;
    if (
in_array(RIGHT$a) && $this->maze[$xy[1]][$xy[0]+1] == CHEESE && empty($found))    $found[] = RIGHT;
    if (
in_array(DOWN$a) && $this->maze[$xy[1]+1][$xy[0]] == CHEESE && empty($found))    $found[] = DOWN;
    if (
in_array(LEFT$a) && $this->maze[$xy[1]][$xy[0]-1] == CHEESE && empty($found))    $found[] = LEFT;
                
    if (empty(
$found))    return $a;
    else    return 
$found;

Y luego, en el metodo solveMaze(), justo antes de la linea que mueve el raton:
Código PHP:
$this->Move($dir[array_rand($dir)]); 
Se agrega esta linea:
Código PHP:
if (count($dir) > 1)    $dir $this->checkAround($dir); 
No lo he probado, pero creo que deberia funcionar.. y con un rato mas de tiempo puedo simplificar mas el nueov metodo xD

Edito: Por cierto, le agrege comentarios a mi codigo.. no muchos, pero ando sin mucho tiempo xD
__________________
Sin Ideas

Última edición por oso96_2000; 30/03/2007 a las 17:58
  #32 (permalink)  
Antiguo 31/03/2007, 01:05
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Soluciones para el Desafío del Laberinto

Hola:

Yo también he pensado en hacer algunos arreglillos al laberinto, pero antes quería ver los demás códigos. Creo que en distintos nuevos ficheros podemos retocar nuestros resultados a la espera de que shakaran presente su versión (por cierto, bienvenido )

La verdad es que no miré ningún código en profundidad, pero en general me han parecido muy interesantes.

La idea de simular el comportamiento del ratón también me parece bien (aunque por ahora me desmarco...) También hay otras formas de plantear la solución de un Laberinto (aunque no se trate de comerse el queso)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #33 (permalink)  
Antiguo 31/03/2007, 11:23
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: Soluciones para el Desafío del Laberinto

Gracias caricatos ;) Ya sabes que te tengo gran admiración por las veces que me has ayudado ;)

Bueno cogiendo algunos trozos de la solución de alvlin para mostrar (renderizar) el laberinto (cogi el primer codigo para evitar perder tiempo en algo que ya estaba hecho, pues mi proposito, es mostrar como funcionaria el pathfinding y no presentar una solución de render del mapa XD).

He hecho una primera version de lo que pretendo (aun no funcional del todo, ahora os dire que inconveniente he encontrado).

Como os dije me baso en el metodo PathFinding conocido como A* (pronunciado A star), que calcula un mapa, laberinto, etc como si fuera un grafo conexo y valorado (si no sabeis que es un grafo conexo y valorado echadle un ojo a wikipedia o google). Por lo tanto, se define una funcion de costes como:

F=G+H

Donde:
G: es el coste del movimiento que se realiza a la casilla contigua (pe: vertical, horizontal o diagonal)
H: es la estimación desde la casilla actual a la casilla de destino (el queso) medida con alguna heuristica (yo he utilizado el metodo Manhattan con diagonales, ahora lo explicare, aunque se pueden utilizar otras muchas mas como las de Euclides, para gustos hay colores), sin considerar colisiones (muros u otros elementos).
F: es el coste mínimo de G+H en la casilla actual.

Lo que se prentende es aplicar F a cada casilla quedandonos con el mejor coste de las 8 posibilidades de movimiento en una casilla (4 en diagonal, 2 en vertical y 2 en horizontal) (yo he considerado que el raton se mueve en diagonal ya que es mas eficiente y puede darse el caso, pero en el codigo comentado pongo como seria H sin diagonales).

Por lo tanto conseguiremos el camino minimo para llegar desde un punto A(raton) a un punto (B) evitando colisiones y ciclos en el grafo.

Bien, ahora explicare el método Manhattan.

Heurística: Manhattan.
El cálculo de H puede ser estimado de diferentes maneras. El método que he usado se llama el método Manhattan, donde se calcula el número total de cuadros movidos horizontalmente y verticalmente para alcanzar el cuadrado destino desde el cuadro actual, sin hacer uso de movimientos diagonales o por el contrario haciendo uso de las diagonales. En mi caso he utilizado el uso de diagonales.

Nota: Se llama método Manhattan porque es como calcular el número de manzanas que hay desde un lugar a otro, donde no puedes acortar atravesando en diagonal una manzana. Cabe señalar que cuando calculamos H, ignoramos cualquier obstáculo que intervenga (de ahí que sea una estimación).

Un ejemplo de un trazo de la heurística Manhattan SIN diagonal:


Un ejemplo de un trazo de la heurística Manhattan CON diagonal:


Hasta aqui perfecto, pero esto es solo la teoría. Las complicaciones las he encontrado al entrar a la práctica. Ya que por ejemplo para una casilla A miraremos todos los posibles costes de F y lanzaremos la llamada para la que tenga menor coste de todas...que a su vez calculara el F con el menor coste en esa casilla etc. Pero faltara ir marcando en esa llamada, por las casillas que hemos mirado, ya que si encontramos un camino sin salida habra que hacer "Vuelta atras" y coger el siguiente F que menos coste tenga, por lo que aqui se me presenta la duda de como mantener estas listas "abiertas" y comprobar para el elemento minimo de esa lista y si no resulta para el siguiente de esa lista, teniendo en cuenta que cada elemento puede ser a su vez otra lista.

Por otro lado habria que ordenar esas listas de menor a menor con algun metodo como Quicksort (cosa que no se si tiene php o ahi que acudir a una clase de terceros o hacernosla nosotros).

Asi que ese es mi problema, se como hacerlo, pero no manejo php lo suficiente como para saber hacer esas listas, asi que mas bien es un problema de no saber sintaxis del lenguaje.

El codigo esta en www.apogeusone.com/pathfinding.txt

y para la ejecutarlo: www.apogeusone.com/pathfinding.php

A ver si me echais una mano con esto que os pido de las listas y os muestro lo eficiente que puede llegar a ser esto ya que se utiliza en juegos como Warcraft o Starcraft para el calculo de movimiento de unidades en mapas de mas de 256x256 (claro que aplican algunas tecnicas de reduccion de posibilidades, pero estos son los principios)
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #34 (permalink)  
Antiguo 02/04/2007, 16:46
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Soluciones para el Desafío del Laberinto

shakaran, realmente me gustaría ayudarte, pero es extenso el meterse en lo que estas haciendo, necesitaría bajarme el script e ir viéndolo...igual estoy seguro que estas cerca!


Me tomo 5 min para dejarles los comentarios de mi script. Realmente son dos funciones, una llamada validarPosicion, y la otra llamada recorrerLaberinto. Después esta la función queso que fue otorgada en el desafió, y la función dibujarLaberinto que no tiene mucho que explicar, simplemente recorre el array y mete una imagen por cada posición.


Código


Código PHP:
<?

/*
validarPosicion:
    Datos de entrada:
        $fila Int
        $columna Int
    Datos de salida:
        Boolean
*/
function validarPosicion$fila$columna ){
    
#Declaro globales variables
    
global $laberinto$filas$columnas$pared$libre$visitada;
    
#Me fijo si las posiciones están dentro del array
    
if( $fila || $fila >= $filas || $columna || $columna >= $columnas ) return false;
    
#Ahora veo si las posiciones han sido visitadas o si es pared
    
if( $laberinto[$fila][$columna] == $visitada || $laberinto[$fila][$columna] == $pared ) return false;
    
#Si no se hizo un return false llegará acá y dará true
    
return true;
}

/*
recorrerLaberinto:
    Datos de entrada:
        $fila Int
        $columna Int
    Datos de salida:
        Boolean
*/

function recorrerLaberinto$fila$columna ){
    
#Declaro globales variables
    
global $laberinto$filas$columnas$pared$libre$queso$visitada$encontroQueso;
    
#Veo que la posición que estoy viendo no sea $queso, de ser así pongo $encontroQueso en true, lo cual cortará la recursividad, y marcaré dicha posición como $queso.
    
if( $laberinto[$fila][$columna] == $queso ){
        
$encontroQueso true;
        
$laberinto[$fila][$columna] = $queso;
    }else{
    
#Sino, simplemente la marco como que ya ha sido visitada
        
$laberinto[$fila][$columna] = $visitada;
    }
    
#Ahora, lo que haré es ver que $encontroQueso sea false, y que la posición que recorreré (abajo, derecha, izquierda, arriba) sea valida mediante validarPosicion.
    #Si es una posición que puedo recorrer hago recursividad, sino pasará a ver si puede recorrer en la siguiente posición. En caso de pasar los 4 if, dará true como salida y cortara el script.
    
if( $encontroQueso === false && validarPosicion( ( $fila ), $columna ) === true $encontroQueso recorrerLaberinto( ( $fila ), $columna ); #Abajo
    
if( $encontroQueso === false && validarPosicion$fila, ( $columna ) ) === true $encontroQueso recorrerLaberinto$fila, ( $columna ) ); #Derecha
    
if( $encontroQueso === false && validarPosicion$fila, ( $columna ) ) === true $encontroQueso recorrerLaberinto$fila, ( $columna ) ); #Izquierda
    
if( $encontroQueso === false && validarPosicion( ( $fila ), $columna ) === true $encontroQueso recorrerLaberinto( ( $fila ), $columna ); #Arriba
    
return $encontroQueso;
}


#Ejecución:

#Un titulo
echo "<h1>Original</h1>";
#Pongo el queso
queso$laberinto );
#Dibujo el laberinto original
dibujarLaberinto();
#Ejecuto recorrerLaberinto en una posición fija y veo que me de true, en caso contrario no habrá encontrado solución
$ok recorrerLaberinto1);
#Y por no encontrarla corto y muestro un mensaje
if( $ok === false ) die( "<hr>Laberinto sin solución<hr>" );
#Sino, un título más
echo "<h1>Resuelto</h1>";
#Y redibujo el array que se ha reescrito en el proceso mostrando la solución
dibujarLaberinto();
?>
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #35 (permalink)  
Antiguo 02/04/2007, 23:14
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Soluciones para el Desafío del Laberinto

Uhm.. he andado sin tiempo estos dias, y ahorita lei tu mensaje muy por encima shakaran.. pero lo de las listas, no se si te sirvan las funciones tipo sort de php.. hablo de sort(), usort(), ksort(), etc.. en el manual puedes ver si hay alguna que se te acomode mas.

A ver si mañana o pasado puedo echarle una leida mas a fondo de tu mensaje y de tu codigo, que con esas cosas es con lo que aprendo xD
__________________
Sin Ideas
  #36 (permalink)  
Antiguo 03/04/2007, 05:41
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: Soluciones para el Desafío del Laberinto

Cita:
Iniciado por nicolaspar Ver Mensaje
shakaran, realmente me gustaría ayudarte, pero es extenso el meterse en lo que estas haciendo, necesitaría bajarme el script e ir viéndolo...igual estoy seguro que estas cerca!
Es solo lo que dices es algo "extenso" pero no complejo cuando lo empiezas a leer, te animo a que le eches un vistazo y pongas tus conclusiones, es la mejor manera de ayudarme y de que todos aprendamos.

He echado un vistazo a tu codigo y creo que aunque la recursividad aplicada en todos los casos no es la mejor solución si es apta para dar la solución, aunque creo que podrias hacer un pequeña mejora, que consiste en pasar los arrnay como laberinto por referencia y no por valor como lo haces ahora, para la función validaPosicion() ya que estaras haciendo una copia en memoria de las 24x24 posiciones (con el costo que tiene ello en memoria cada vez) y de la otra forma unicamente estaras pasando un puntero. Otra razon es que hay que utilizar lo menos posible las variables globales (es lo primero que te enseñan cuando programas en lenguajes como C en la universidad ;)).

Cita:
Uhm.. he andado sin tiempo estos dias, y ahorita lei tu mensaje muy por encima shakaran.. pero lo de las listas, no se si te sirvan las funciones tipo sort de php.. hablo de sort(), usort(), ksort(), etc.. en el manual puedes ver si hay alguna que se te acomode mas.

A ver si mañana o pasado puedo echarle una leida mas a fondo de tu mensaje y de tu codigo, que con esas cosas es con lo que aprendo xD
Les estuve echando un vistazo antes de postear, pero no me convencen porque ordenan segun clave y no por el contenido de la clave. La que si me llamo mas la atencion fue uksort() porque dejaba introducir una funcion para compara los valores (en este caso seria la funcion minimo), pero tambien ordena por claves y no por contenido de la clave.

Seria tener un array de numeros tal que asi:

[4,56,3,7,5,23,15,12]

Y que se ordenaran de menor a mayor:
[3,4,5,7,12,15,23,56]

Es una funcion de ordenación, en C se programarlo como quicksort, que trae una por defecto llamada qsort() o puedes hacertela tu mismo. No se si php traiga una o haya que hacerla ;)

A ver si mas gente participa y postea, porque llevaba ya 2 dias sin contestarme nadie y creia que habia propuesto un problema sin solucion y que solo entendia yo XD
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #37 (permalink)  
Antiguo 03/04/2007, 09:24
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Soluciones para el Desafío del Laberinto

Cita:
Es solo lo que dices es algo "extenso" pero no complejo cuando lo empiezas a leer, te animo a que le eches un vistazo y pongas tus conclusiones, es la mejor manera de ayudarme y de que todos aprendamos.
Si, tal cual, solo extenso, pero en tiempos muchas veces se torna igual a complejo...

Cita:
He echado un vistazo a tu codigo y creo...
No se si es sonará como una defensa lo que diré, o simplemente como una escusa, pero realmente no me pareció correcto aplicarle update después de entregado el código, es el original, arranque trabajándolo de una manera que no resulto la final, luego cuando quise acordar habían pasado casi dos horas (renegaba con la posición $queso, la pasaba por alto), así que una vez que funciono lo subí sin hacerle corrección alguna. Se que no es correcto, pero es lo que hay.

Con el tema de orden con QuickSort tenes varias alternativas ya hechas para php, como ser esta.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #38 (permalink)  
Antiguo 03/04/2007, 15:51
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Soluciones para el Desafío del Laberinto

Uhm.. que ordenan segun la clave te refieres al indice en lugar de que ordenen por el valor? Porque por ejemplo en el ejemplo de la funcion sort(), se ve que ordena los nombres de las frutas de manera alfabetica.. eso seria por el valor, no el indice

O bien, ahorita leia la funcion asort(), y parece que ordena tambien por el valor, y a la vez mantiene el indice de ese elemento, por si este quisiera conservarse..

Código PHP:
<?php
$a 
= array(456375531512);
print_r($a);
echo 
'<br />';
sort($a);
print_r($a);
?>
El resultado de eso es:
Cita:
Array ( [0] => 4 [1] => 56 [2] => 3 [3] => 7 [4] => 5 [5] => 53 [6] => 15 [7] => 12 )
Array ( [0] => 3 [1] => 4 [2] => 5 [3] => 7 [4] => 12 [5] => 15 [6] => 53 [7] => 56 )
Como se ve, ordena el arreglo de acuerdo al valor.. no se si entendi mal lo de que ordena por claves y no por el contenido
__________________
Sin Ideas
  #39 (permalink)  
Antiguo 04/04/2007, 10:07
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Soluciones para el Desafío del Laberinto

Cual es el limite de las entregas? porque por lo visto IngProd ha desaparecido...

Estaría bueno cerrar esto así podemos quedar para abrir un nuevo desafío.

1- Como se harán las votaciones? (nuevo thread con encuesta? estaría bueno votar del 1 al 10 y sacar average)
2- Pongamos un limite de tiempo, así, pese a las responsabilidades de cada uno, podemos hacer que la cosa parezca un poco mas sería.


PD: Actualice el código fuente agregándole los comentarios, y ya que estaba, siguiendo el consejo de shakaran, le agregue constantes (cosa que creo no cambia la lógica o el engine del mismo).

Laberinto:

http://www.estudiowas.com.ar/desafio.../laberinto.php

Código Fuente:
http://www.estudiowas.com.ar/desafio...rarFuente=dale
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #40 (permalink)  
Antiguo 05/04/2007, 14:33
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
Puntos: 834
Re: Soluciones para el Desafío del Laberinto

Pero cómo sería la encuesta? Para puntos tendría que haber 1 por cada solución y lo veo incómodo para los votantes. Sin puntos sería incompleta, porque a lo mejor a alguien le gusta más de 1 solución, pero creo que es la más factible en este espacio. Algo como qué solución te gusta más y las opciones.
También podría abrirse un espacio externo para la votación, pero no me gusta mucho la idea.
Por otro lado, si vamos a seguir con esto de los desafíos, tendría que haber alguien que coordine (yo pensé que iba a ser Deer, que fue el ideólogo, luego Okram, que abrió este segundo post).
Qué opinan?
  #41 (permalink)  
Antiguo 05/04/2007, 14:42
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Soluciones para el Desafío del Laberinto

Lo mismo que vos!

Lo ideal sería una aplicación externa, pensaba proponer de desarrollarla, pero luego me invadió la pachorra:P

Lo de coordinar también pienso lo mismo, ya se han hecho emprendimientos de este tipo y jamás llegan a buen puerto, es una lastima!!

Podemos hacer una encuesta como decís y darle un positivo al que mas te guste, pero estaría bárbaro que cada código tenga un puntaje y un comentario por cada voto que hace al mismo...!
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #42 (permalink)  
Antiguo 05/04/2007, 15:04
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
Puntos: 834
Re: Soluciones para el Desafío del Laberinto

Bueno, Niicolás, veremos qué opinan los demás y de última me ofrezco para abrir la encuesta.
  #43 (permalink)  
Antiguo 05/04/2007, 15:07
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Soluciones para el Desafío del Laberinto

Yo creo (espero que no) que esto muere acá...

Esperemos hasta el lunes/martes y la abrimos, me parece lo mejor.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #44 (permalink)  
Antiguo 05/04/2007, 18:19
Avatar de Falhor  
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 18 años, 5 meses
Puntos: 5
Re: Soluciones para el Desafío del Laberinto

Cuando quieran abran la encuesta o lo que sea de la forma que quieran, mucho no me importa el puntaje, lo hice para pasar el rato y desafiarme a mí mismo.

Saludos.
  #45 (permalink)  
Antiguo 05/04/2007, 19:24
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Soluciones para el Desafío del Laberinto

Yo creo que si se quiere calificar el codigo, seeria buena idea definir ciertos aspectos a calificar.. cuales? no se XD.. eficacia del codigo, del algoritmo, tiempo, cosas ai, creo yo..

Yo al igual que Falhor lo hice por desafiarme y ver si podia lograrlo o.o.. pero si me gustaria que se siguieran haciendo este tipo de desafios =P
__________________
Sin Ideas
  #46 (permalink)  
Antiguo 05/04/2007, 20:12
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Soluciones para el Desafío del Laberinto

Totalmente de acuerdo, sobre todo con los aspectos a calificar...que puntos proponen a tener en cuenta?
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #47 (permalink)  
Antiguo 05/04/2007, 22:04
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
Puntos: 834
Re: Soluciones para el Desafío del Laberinto

Yo lo hice por el premio de u$s 5000, no me digan que los organizadores se echaron para atrás
  #48 (permalink)  
Antiguo 06/04/2007, 08:24
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Soluciones para el Desafío del Laberinto

BIen, creo que el tema no muere aqui... Yo estuve ausente toda la semana debido a la universidad, y ademas me senti perdido frente a tantos algoritmos tecnicas y las cosas de las que hablaban que pues senti que mis comentarios estaban fuera de lugar

Supuestamente el plazo para comentar codigos era toda la semana que paso, y el metodo que se usara para calificar los codigos no esta aun determinado. Yo tambien pienso que deberiamos tener un sistema para calificar cada codigo de 1 a 10 puntos, asi sacariamos un promedio de cada codigo y asi determinariamos el mas aceptado.

Acerca de Deer, no tengo idea que fue de el. Yo abri este nuevo tema debido a que ya era hora de entregar los codigos y aun no se habia manifestado al respecto, pero es él el que tuvo la idea inicial.

Ingprod, es una lastima que haya desaparecido, su script parecia muy interesante, y estoy seguro que muchos queriamos ver el metodo que utilizo.

Intentare armar (y/o/e buscar y/o/e adaptar) un sistema simple para que podamos calificar los scripts, pero no me comprometo.

Un saludo,
  #49 (permalink)  
Antiguo 06/04/2007, 09:49
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
Puntos: 834
Re: Soluciones para el Desafío del Laberinto

Qué les parece lo siguiente: se crea una encuesta de 1 a 10 por cada solución en este foro, diciendo que la calificación debe basarse en x parámetros (velocidad de ejecución, etc.). Luego, en una página externa, se coloca un listado con las soluciones y un botón calificar junto a cada solución. Dicho botón, al ser presionado, lo que hace es desplegar un iframe o un popup con la encuesta correspondiente, para que el visitante vote de 1 a 10, pero usando el sistema del foro.
Al final del plazo para votar, un voluntario consolida los resultados y los publica para que se sepa quién ganó.
  #50 (permalink)  
Antiguo 06/04/2007, 18:18
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Soluciones para el Desafío del Laberinto

Me parece más que bien!, la pregunta es: quién lo organiza?.

En cuanto a los puntos, podrían ser:
1- Mejor técnica.
2- Mejor desempeño y eficacia del algoritmo.
3- Mejor implementación, optimización y comprensión del algoritmo.

Se le puede sumar a esto cosas como originalidad, propósito, y demás...pero no se si estará bien tantos puntos a tener en cuenta...discutamos esto entre todos.

PD: me copa lo del premio de 5 lucas verdes eh! :) :P
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #51 (permalink)  
Antiguo 06/04/2007, 18:31
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
Puntos: 834
Re: Soluciones para el Desafío del Laberinto

Avisen si están de acuerdo o quieren agregar alguna cosa y yo me encargo ;)
  #52 (permalink)  
Antiguo 06/04/2007, 18:35
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Soluciones para el Desafío del Laberinto

kenial; tenes mi ok!
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #53 (permalink)  
Antiguo 07/04/2007, 15:56
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Soluciones para el Desafío del Laberinto

Cita:
Iniciado por nicolaspar Ver Mensaje
kenial; tenes mi ok!
Y el mio.

Andrés: si necesitas alguna ayuda, aunque sea sobre bookmarklets, danos un toque.

Saludetes
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #54 (permalink)  
Antiguo 07/04/2007, 16:10
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Soluciones para el Desafío del Laberinto

Por mi estan bien esos puntos =P
__________________
Sin Ideas
  #55 (permalink)  
Antiguo 07/04/2007, 16:16
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Soluciones para el Desafío del Laberinto

Pues no he participado mucho últimamente por acá, además mi algoritmo es el menos eficiente, pero vamos, participo

Ahora, creo que lo que debería hacerse es eliminar la parte del programa que escribe la tabla, y dejar únicamente el código que corresponda a la búsqueda de la solución.

Quizás no sea muy divertida la comparación de programas que no producen salida, pero es lo más justo, ¿no?

La otra posibilidad sería que todos usemos el mismo código para producir la salida...

Saludos.
  #56 (permalink)  
Antiguo 07/04/2007, 17:13
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Soluciones para el Desafío del Laberinto

La idea no me parece muy buena, ya que cargariamos el servidor de FDW (EDITADO: No el servidor, mas bien el foro de PHP, y mas que una carga de recursos me refiero al numerod e temas nuevos) con 8 temas dedicados a los votos, y ....

Revisen esto:

http://myokram.phpnet.us/poll

lo diseñe ayer pero no pude colgarlo. Creo que nos permitira calificar los scripts. Pueden votar, aunque solo es de prueba. Si lo aprueban, podemos usar este script para la calificacion

que opinan?

Un saludo,
  #57 (permalink)  
Antiguo 07/04/2007, 19:17
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Soluciones para el Desafío del Laberinto

Buenisimo okram! Yo lo unico que le cambiaria, es poner ahi mismo en base a que se va a calificar (los puntos que dijo nicolaspar) y una explicacion de a que se refiere cada punto, para que quienes lo vean sepan que hacer =P
__________________
Sin Ideas
  #58 (permalink)  
Antiguo 07/04/2007, 19:27
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
Puntos: 834
Re: Soluciones para el Desafío del Laberinto

Gracias, Pepe, por el ofrecimiento!
Yo decía de mantenernos dentro del Foro x 3 razones:
1-evitar cualquier tipo de suspicacia, ya que usaríamos el sistema del Foro.
2-conseguir que más gente participe, porque mi idea era colocar un enlace en cada una de las encuestas creadas, invitando a votar en la página que consolidaba el resto de las votaciones.
3-de alguna manera ir sistematizando todo esto, ya que la idea es seguir adelante con los desafíos.
Pero ahora, con el trabajo que hizo Okram, no sé...
De última, si nadie comenta nada, mañana a la noche creo las encuestas y la página, y si veo que para mañana ya algunos creen que sería mejor aprovechar lo que hizo Okram, bueno, o él o yo (quien llegue primero) abrimos un nuevo tema y seguimos adelante.
alvlin: si querés ver cuál es el algoritmo menos eficiente, fijate el que hice primero, el de backtracking
  #59 (permalink)  
Antiguo 07/04/2007, 19:39
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Soluciones para el Desafío del Laberinto

Siempre hay el riesgo de que se juegue sucio, pero te aseguro que no es mi intencion. Podria si deseas dar el codigo del script que diseñe a alguna otra persona (un moderador tal vez, que resultaria mas confiable), para que lo publique en su sitio. He implementado un sistema de comentarios y los resultados hasta el momento de la visualizacion.

http://myokram.phpnet.us/poll

Sigo con la idea de que crear encuestas para cada solucion dentro del foro es sobrecargarlo de temas innecesarios y hasta derepente son eliminados por nuestro moderador.

Te sugeriria esperar la opinion de la mayoria de usuarios que han participado activamente en este tema antes de decidir sobre el sistema de votacion.

Un saludo,
  #60 (permalink)  
Antiguo 07/04/2007, 19:51
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
Puntos: 834
Re: Soluciones para el Desafío del Laberinto

Cita:
Te sugeriria esperar la opinion de la mayoria de usuarios que han participado activamente en este tema antes de decidir sobre el sistema de votacion.
Completamente de acuerdo, es justo lo que dije, máxime con el trabajo que te has mandado, que por otra parte me gusta mucho.
Y ojo, en esto yo no desconfío para nada de las intenciones de nadie, pero ese soy yo, y la idea es que también participe gente que quizá no ha seguido este tema tan de cerca.
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 1 personas




La zona horaria es GMT -6. Ahora son las 16:35.