<?php
/**
 * Crucigramas - crucigramas1b.php
 * 
 * @author    Bartolomé Sintes Marco <bartolome.sintes+mclibre@gmail.com>
 * @copyright 2009 Bartolomé Sintes Marco
 * @license   http://www.gnu.org/licenses/agpl.txt AGPL 3 or later
 * @version   2009-05-27
 * @link      http://www.mclibre.org
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU Affero General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Affero General Public License for more details.
 *
 *  You should have received a copy of the GNU Affero General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

function recoge($var) 
{
    $tmp = (isset($_REQUEST[$var])) ? trim(strip_tags($_REQUEST[$var])) : '';
    if (get_magic_quotes_gpc()) {
        $tmp = stripslashes($tmp);
    }
    $tmp = str_replace('&', '&amp;',  $tmp);
    $tmp = str_replace('"', '&quot;', $tmp);
    return $tmp;
}

function recogeMatriz($var) 
{
    $tmpMatriz = array();
    if (isset($_REQUEST[$var]) && is_array($_REQUEST[$var])) {
        foreach ($_REQUEST[$var] as $indice => $valor) {
            $tmp = trim(strip_tags($indice));
            if (get_magic_quotes_gpc()) {
                $tmp = stripslashes($tmp);
            }
            $tmp = str_replace('&', '&amp;',  $tmp);
            $tmp = str_replace('"', '&quot;', $tmp);
            $indiceLimpio = $tmp;
            if (is_array($valor)) {
                foreach ($valor as $indice2 => $valor2) {
                    $tmp = trim(strip_tags($indice2));
                    if (get_magic_quotes_gpc()) {
                        $tmp = stripslashes($tmp);
                    }
                    $tmp = str_replace('&', '&amp;',  $tmp);
                    $tmp = str_replace('"', '&quot;', $tmp);
                    $indice2Limpio = $tmp;
        
                    $tmp = trim(strip_tags($valor2));
                    if (get_magic_quotes_gpc()) {
                        $tmp = stripslashes($tmp);
                    }
                    $tmp = str_replace('&', '&amp;',  $tmp);
                    $tmp = str_replace('"', '&quot;', $tmp);
                    $valorLimpio  = $tmp;
        
                    $tmpMatriz[$indiceLimpio][$indice2Limpio] = $valorLimpio;
                }                      
            }
        }
    }
    return $tmpMatriz;
}

$solucion = array (
    1 => array(1=>'C', 2=>'O', 3 => 'P', 4 =>'A', 5 => 'R'),
    2 => array(1=>'E', 2=>'B', 3 => 'A', 4 =>'N', 5 => 'O'),
    3 => array(1=>'R', 2=>'E', 3 => 'L', 4 =>'O', 5 => 'J'),
    4 => array(1=>'O', 2=>'S', 3 => 'A', 4 =>'D', 5 => 'O'),
    5 => array(1=>'S', 2=>'O', 3 => 'S', 4 =>'O', 5 => 'S')); 

$respuesta = recogeMatriz('c');
// print "<pre>"; print_r($respuesta); print "</pre>"; 
$respuestaOk = TRUE;

print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?"."> 
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"
       \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />
  <title>Crucigramas (Resultado). Exámenes. PHP. Bartolomé
  Sintes Marco</title>
  <link href=\"mclibre_php_soluciones.css\" rel=\"stylesheet\" type=\"text/css\" 
  title=\"Color\" />
</head>
<body>

<h1>Crucigramas (Resultado)</h1>\n";

// Comprueba que las matrices $solucion y $respuesta tienen el mismo tamaño
if (count($respuesta)!=count($solucion)) {
    $respuestaOk = FALSE;
}

foreach ($respuesta as $i => $fila) {
    if (count($respuesta[$i])!=count($solucion[$i])) {
        $respuestaOk = FALSE;
    }
}

if (!$respuestaOk) {
    print "<p>Error en la matriz recibida.</p>";
} else {
    // Convierte a mayúsculas la respuesta del usuario
    foreach ($respuesta as $i => $fila) {
        foreach ($fila as $j => $casilla) {
            $respuesta[$i][$j] = strtoupper($respuesta[$i][$j]); 
        }
    }
    // Comprueba que las matrices $solucion y $respuesta son iguales
    $solucionOk = TRUE;
    foreach ($solucion as $i => $fila) {
        foreach ($fila as $j => $casilla) {
            if ($respuesta[$i][$j]!=$solucion[$i][$j]) {
                $solucionOk = FALSE;
            }
        }
    }
    if ($solucionOk) {
        print "<p>¡Enhorabuena! Has resuelto correctamente el crucigrama.</p>\n";
    } else {
        print "<p>Lo siento, pero no has resuelto correctamente el crucigrama.</p>\n";
    }    
}

print "<p><a href=\"crucigramas_1a.php\">Volver a empezar</a></p>

<address>
  Esta página forma parte del curso \"Páginas web con PHP\" disponible en <a
  href=\"http://www.mclibre.org/\">http://www.mclibre.org</a><br />
  Autor: Bartolomé Sintes Marco<br />
  Última modificación de esta página: 27 de mayo de 2009 
</address>
<p class=\"licencia\">El programa PHP que genera esta página está bajo 
<a rel=\"license\" href=\"http://www.gnu.org/licenses/agpl.txt\">licencia AGPL 3 o
posterior</a>.</p>
</body>
</html>";
?>