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($result, 0);
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($result, 0);
$respuesta = "<entel>$resp Puntaje:$puntos</entel>";
echo $respuesta;
$query = "SELECT COUNT(*) FROM crucigrama WHERE resuelto = '0'";
$result = mysql_query($query);
$existe_cruci = mysql_result($result, 0);
if($existe_cruci <= 2){
//include("gencruci.php");
}
Y eso es todo, lo unico que te faltaria es el frontend....