Tema: Crucigrama
Ver Mensaje Individual
  #7 (permalink)  
Antiguo 02/10/2006, 11:43
Avatar de seyacat
seyacat
 
Fecha de Ingreso: agosto-2006
Mensajes: 382
Antigüedad: 18 años, 3 meses
Puntos: 0
Continuo estas son las tablas.
Funcionaba con un front end en flash, en crucigrama se almacena los crucigramas generados y como avanzaban las respuestas, simpre generaba un crucigrama automaticamente de reserva, asi siempre tenia nuevos y nuevos y nuevos, no cre que sea tu caso

En diccionario estan las palabras, nunca separe por categorias, Jugador era para almacenar el puntaje y juego para separar sesiones de puntaje. La verdad esas tablas no creo que te sirvan

CREATE TABLE `crucigrama` (
`id_crucigrama` bigint(20) NOT NULL auto_increment,
`crucigrama` text NOT NULL,
`palabras` text NOT NULL,
`resuelto` binary(1) NOT NULL default '0',
PRIMARY KEY (`id_crucigrama`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=9578 ;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `diccionario`
--

CREATE TABLE `diccionario` (
`id_palabra` bigint(20) NOT NULL auto_increment,
`palabra` varchar(20) NOT NULL default '',
`descripcion` varchar(150) NOT NULL default '',
`categoria` varchar(20) NOT NULL default '',
PRIMARY KEY (`id_palabra`),
UNIQUE KEY `palabra` (`palabra`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=483 ;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `juego`
--

CREATE TABLE `juego` (
`id` int(10) NOT NULL default '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `jugador`
--

CREATE TABLE `jugador` (
`id_jugador` bigint(20) NOT NULL auto_increment,
`id_juego` bigint(20) NOT NULL default '0',
`numero` varchar(20) NOT NULL default '',
`nick` varchar(20) NOT NULL default '',
`puntos` bigint(20) NOT NULL default '0',
PRIMARY KEY (`id_jugador`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=691 ;

-- --------------------------------------------------------

aqui el codigo de interactividad

Código PHP:
$numero $_GET['numero'];
$mensaje $_GET['mensaje'];
$short_num $_GET['short_num'];
$operator $_GET['operator'];
$idmsg $_GET['idmsg'];
$db 'sin_shortnum';
$mensaje strtolower($mensaje);
$mensaje implode("",explode("\"",$mensaje));
$programa "";
$estado "";

$query "SELECT id FROM juego LIMIT 1";
    
$result mysql_query($query);
    
$juego mysql_result($result,0);
    
    
$query ="SELECT COUNT(*) FROM jugador WHERE numero = $numero AND id_juego = $juego" ;
    
$result mysql_query($query);
    
$row mysql_result($result0);
    if(
$row==0){
        
$query ="INSERT INTO `jugador` ( `id_jugador` , `id_juego` , `numero` , `nick` , `puntos`  ) 
        VALUES (
        '', '$juego', '$numero', '', '0'
        )
        "
;
        
$result mysql_query($query);
        }
//end insert if
        
    
$query "SELECT palabras FROM crucigrama WHERE resuelto != 1 LIMIT 1;";
    
$result mysql_query($query);
    
$row mysql_result($result,0);
    
$mensaje strtoupper($mensaje);
    
$msg explode(" ",$mensaje);
    
$nuevas 0;
    
$viejas 0;
    
$erradas 0;
    
$palabras_out $row;
    foreach(
$msg as $mss){
        
$palabras explode(";",$palabras_out);
        
$palabras_out "";
        
$completado=1;
        foreach(
$palabras as $palabra){
            if(
$palabra != ""){
                
$palabra explode("-",$palabra);
                if(
$palabra[3]==$mss)
                    {
                    if(
$palabra[2]=="1"){
                        
$viejas++;
                        }
                    else{
                        
$palabra[2]=1;
                        
$nuevas++;
                        }
//end elseif
                    
}//end if
                
else{
                    
                    }
                if(
$palabra[2]!="1"){$completado=0;}//revisa si se ha completado
                
$palabra implode("-",$palabra);
                
$palabras_out .= $palabra.";";
                }
            }
//end foreach
        //$palabras = $palabras_out;
        
}//end foreach mensaje
    
$nummsg count($msg);
    
$erradas $nummsg $nuevas $viejas;
    
$resp "";
    if(
$nuevas 0){$resp .= "$nuevas palabra(s) acertada(s),";}
    if(
$viejas 0){$resp .= " $viejas palabra(s) ya resuelta(s),";}
    if(
$erradas 0){$resp .= " $erradas palabra(s) errada(s),";}
    
$resp .= " de $nummsg palabra(s) enviada(s).";
    if(
$nuevas 0){
        
$query "UPDATE `crucigrama`
            SET `palabras` = '$palabras_out;' 
            WHERE resuelto != 1 LIMIT 1"
;
            
mysql_query($query);
            
            
$query "UPDATE `jugador` SET puntos = puntos+$nuevas WHERE numero = $numero AND id_juego = $juego";
            
mysql_query($query);//query de goolll
        
}
    
    if(
$completado == 1){
        
$query "UPDATE `crucigrama` SET `resuelto` = '1' WHERE resuelto != 1 LIMIT 1";
        
mysql_query($query);
        }
    
$query "SELECT puntos FROM `jugador`  WHERE id_juego = (SELECT MAX(id_juego) FROM jugador) AND numero = $numero";
    
$result mysql_query($query);
    
$puntos  mysql_result($result0);
    
$respuesta "<entel>$resp  Puntaje:$puntos</entel>";
    echo 
$respuesta;
    
    
$query "SELECT COUNT(*) FROM crucigrama WHERE resuelto = '0'";
    
$result mysql_query($query);
    
$existe_cruci mysql_result($result0);
    if(
$existe_cruci <= 2){
        
//include("gencruci.php");
        

Y eso es todo, lo unico que te faltaria es el frontend....

Última edición por seyacat; 02/10/2006 a las 11:54