En esta página se muestran una parte de las soluciones de los ejercicios Sesiones Minijuegos (1).
Si lo prefiere, puede descargar unas posibles soluciones completas de estos ejercicios.
Una vez completada la aplicación hay que comprobar desde el principio (cerrando el navegador previamente) que la aplicación funciona correctamente (es decir, que la aplicación tiene en cuenta que la primera vez que se ejecuta, todavía no hay datos).
Es importante recordar que el usuario sólo va a ver la página 1 del programa, ya que la página 2 va a redirigir siempre automáticamente a la página 1. Por ello, la página 2 no debe tener ningún fragmento de HTML, ni ningún print.
Como en cualquier página que recibe un control de un formulario, añadimos la función recoge() y definimos una variable para recoger el dato
minijuegos-1-1-1.php
<?php // Accedemos a la sesión 1 session_name("minijuegos-1-1"); session_start(); // Si el valor de sesión no existe, ponemos el valor de la carta a uno 2 if (!isset($_SESSION["carta"])) { $_SESSION["carta"] = 1; } ?>
<!DOCTYPE html> ... <form action="minijuegos-1-1-2.php">
<?php // Mostramos la carta, guardada en la sesión 3 print " <p><img src=\"img/cartas/c$_SESSION[carta].svg\" alt=\"$_SESSION[carta] de corazones\" height=\"150\"></p>\n"; print "\n"; ?> <p><button type="submit" name="accion" value="nueva">Nueva carta</button></p> </form> ...
minijuegos-1-1-2.php
<?php
// Accedemos a la sesión 4
session_name("minijuegos-1-1");
session_start();
// Si el valor de sesión no existe, redirigimos a la primera página 5
if (!isset($_SESSION["carta"])) {
header("Location:minijuegos-1-1-1.php");
exit;
}
// Función de recogida de datos 6
function recoge($key, $type = "")
{
if (!is_string($key) && !is_int($key) || $key == "") {
trigger_error("Function recoge(): Argument #1 (\$key) must be a non-empty string or an integer", E_USER_ERROR);
} elseif ($type !== "" && $type !== []) {
trigger_error("Function recoge(): Argument #2 (\$type) is optional, but if provided, it must be an empty array or an empty string", E_USER_ERROR);
}
$tmp = $type;
if (isset($_REQUEST[$key])) {
if (!is_array($_REQUEST[$key]) && !is_array($type)) {
$tmp = trim(htmlspecialchars($_REQUEST[$key]));
} elseif (is_array($_REQUEST[$key]) && is_array($type)) {
$tmp = $_REQUEST[$key];
array_walk_recursive($tmp, function (&$value) {
$value = trim(htmlspecialchars($value));
});
}
}
return $tmp;
}
// Recogemos accion
$accion = recoge("accion");
// Si recibimos "nueva", modificamos el número de carta 7
if ($accion == "nueva") {
$_SESSION["carta"] = rand(1, 10);
}
// Volvemos al formulario 8
header("Location:minijuegos-1-1-1.php");
Este ejercicio añade al anterior la capacidad de llevar la cuenta de la carta más alta mostrada hasta el momento, así como la posibilidad de reiniciar el proceso.
Como en cualquier página que recibe un control de un formulario, añadimos la función recoge() y definimos una variable para recoger el dato
minijuegos-1-2-1.php
<?php
// Accedemos a la sesión 1
session_name("minijuegos-1-2");
session_start();
// Si los valores de sesión no existen, ponemos los dos valores de sesión a uno 2
if (!isset($_SESSION["carta"])) {
$_SESSION["carta"] = $_SESSION["maximo"] = 1;
}
?>
<!DOCTYPE html>
...
<form action="minijuegos-1-2-2.php">
<?php
// Mostramos la carta, guardada en la sesión 3
print " <p><img src=\"img/cartas/p$_SESSION[carta].svg\" alt=\"$_SESSION[carta] de picas\" height=\"150\"></p>\n";
print "\n";
// Mostramos el máximo, guardado en la sesión
print " <p>Carta más alta obtenida: $_SESSION[maximo]</p>\n";
print "\n";
?>
...
minijuegos-1-2-2.php
<?php// Accedemos a la sesión 4
session_name("minijuegos-1-2");
session_start();
// Si los valores de sesión no existen, redirigimos a la primera página 5
if (!isset($_SESSION["carta"])) {
header("Location:minijuegos-1-2-1.php");
exit;
}
// Función de recogida de datos 6
function recoge($key, $type = "")
{
if (!is_string($key) && !is_int($key) || $key == "") {
trigger_error("Function recoge(): Argument #1 (\$key) must be a non-empty string or an integer", E_USER_ERROR);
} elseif ($type !== "" && $type !== []) {
trigger_error("Function recoge(): Argument #2 (\$type) is optional, but if provided, it must be an empty array or an empty string", E_USER_ERROR);
}
$tmp = $type;
if (isset($_REQUEST[$key])) {
if (!is_array($_REQUEST[$key]) && !is_array($type)) {
$tmp = trim(htmlspecialchars($_REQUEST[$key]));
} elseif (is_array($_REQUEST[$key]) && is_array($type)) {
$tmp = $_REQUEST[$key];
array_walk_recursive($tmp, function (&$value) {
$value = trim(htmlspecialchars($value));
});
}
}
return $tmp;
}
$accion = recoge("accion");
// Si recibimos "reiniciar", reiniciamos los valores de sesión 7
if ($accion == "reiniciar") {
$_SESSION["maximo"] = $_SESSION["carta"] = 1;
// Si recibimos "nueva", modificamos el número de carta ... 8
} elseif ($accion == "nueva") {
$_SESSION["carta"] = rand(1, 10);
// ... y comprobamos si se ha superado el máximo anterior 9
// para cambiar el máximo por la nueva carta
if ($_SESSION["carta"] > $_SESSION["maximo"]) {
$_SESSION["maximo"] = $_SESSION["carta"];
}
}
// Volvemos al formulario 10
header("Location:minijuegos-1-2-1.php");
Este ejercicio añade al anterior la capacidad de llevar la cuenta del número de cartas mostradas desde que se inicia o reinicia el proceso.
Como en cualquier página que recibe un control de un formulario, añadimos la función recoge() y definimos una variable para recoger el dato
minijuegos-1-3-1.php
<?php
// Accedemos a la sesión 1
session_name("minijuegos-1-3");
session_start();
// Si los valores de sesión no existen, ponemos los valores iniciales 2
if (!isset($_SESSION["carta"])) {
$_SESSION["maximo"] = $_SESSION["carta"] = 1;
$_SESSION["intentos"] = 0;
}
?>
<!DOCTYPE html>
...
<form action="minijuegos-1-3-2.php">
<?php
// Mostramos la carta, guardada en la sesión 3
print " <p><img src=\"img/cartas/d$_SESSION[carta].svg\" alt=\"$_SESSION[carta] de diamantes\" height=\"150\"></p>\n";
print "\n";
// Mostramos el máximo, guardado en la sesión
print " <p>Carta más alta obtenida: $_SESSION[maximo]</p>\n";
print "\n";
// Mostramos el número de intentos, guardado en la sesión
print " <p>Intentos hasta conseguir un 10: $_SESSION[intentos]</p>\n";
print "\n";
?>
...
minijuegos-1-3-2.php
<?php// Accedemos a la sesión 4
session_name("minijuegos-1-3");
session_start();
// Si los valores de sesión no existen, redirigimos a la primera página 5
if (!isset($_SESSION["carta"])) {
header("Location:minijuegos-1-3-1.php");
exit;
}
// Función de recogida de datos 6
function recoge($key, $type = "")
{
if (!is_string($key) && !is_int($key) || $key == "") {
trigger_error("Function recoge(): Argument #1 (\$key) must be a non-empty string or an integer", E_USER_ERROR);
} elseif ($type !== "" && $type !== []) {
trigger_error("Function recoge(): Argument #2 (\$type) is optional, but if provided, it must be an empty array or an empty string", E_USER_ERROR);
}
$tmp = $type;
if (isset($_REQUEST[$key])) {
if (!is_array($_REQUEST[$key]) && !is_array($type)) {
$tmp = trim(htmlspecialchars($_REQUEST[$key]));
} elseif (is_array($_REQUEST[$key]) && is_array($type)) {
$tmp = $_REQUEST[$key];
array_walk_recursive($tmp, function (&$value) {
$value = trim(htmlspecialchars($value));
});
}
}
return $tmp;
}
$accion = recoge("accion");
// Si recibimos "reiniciar", reiniciamos los valores de sesión 7
if ($accion == "reiniciar") {
$_SESSION["maximo"] = $_SESSION["carta"] = 1;
$_SESSION["intentos"] = 0;
// Si recibimos "nueva", modificamos el número de carta, ... 8
} elseif ($accion == "nueva") {
$_SESSION["carta"] = rand(1, 10);
// ... comprobamos si no hemos obtenido todavía un 10 9
// para incrementar el contador
if ($_SESSION["maximo"] < 10) {
$_SESSION["intentos"]++;
}
// ... comprobamos si se ha superado el máximo anterior 10
// para cambiar el máximo por la nueva carta
if ($_SESSION["carta"] > $_SESSION["maximo"]) {
$_SESSION["maximo"] = $_SESSION["carta"];
}
}
// Volvemos al formulario 11
header("Location:minijuegos-1-3-1.php");
Como en cualquier página que recibe un control de un formulario, añadimos la función recoge() y definimos una variable para recoger el dato
minijuegos-1-4-1.php
<?php
// Accedemos a la sesión 1
session_name("minijuegos-1-4");
session_start();
// Si los valores de sesión no existen, damos valor a las tres cartas 2
if (!isset($_SESSION["carta1"])) {
$_SESSION["carta1"] = rand(1, 10);
$_SESSION["carta2"] = rand(1, 10);
$_SESSION["carta3"] = rand(1, 10);
}
?>
<!DOCTYPE html>
...
<form action="minijuegos-1-4-2.php">
<?php
print " <p>\n";
print " <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" \n";
print " width=\"260\" height=\"190\" viewBox=\"-50 -10 260 190\">\n";
// Mostramos las tres cartas, guardadas en la sesión 3
print " <image href=\"img/cartas/t$_SESSION[carta1].svg\" x=\"0\" y=\"0\" height=\"150\" transform=\"rotate(-15, 0, 150)\"/>\n";
print " <image href=\"img/cartas/t$_SESSION[carta2].svg\" x=\"0\" y=\"0\" height=\"150\" transform=\"rotate(0, 0, 150)\"/>\n";
print " <image href=\"img/cartas/t$_SESSION[carta3].svg\" x=\"0\" y=\"0\" height=\"150\" transform=\"rotate(15, 0, 150)\"/>\n";
print " </svg>\n";
print " </p>\n";
print "\n";
?>
<p><button type="submit" name="accion" value="nuevas">Nuevas cartas</button></p>
</form>
...
minijuegos-1-4-2.php
<?php
// Accedemos a la sesión 4
session_name("minijuegos-1-4");
session_start();
// Si el valor de sesión no existe, redirigimos a la primera página 5
if (!isset($_SESSION["carta1"])) {
header("Location:minijuegos-1-4-1.php");
exit;
}
// Función de recogida de datos 6
function recoge($key, $type = "")
{
if (!is_string($key) && !is_int($key) || $key == "") {
trigger_error("Function recoge(): Argument #1 (\$key) must be a non-empty string or an integer", E_USER_ERROR);
} elseif ($type !== "" && $type !== []) {
trigger_error("Function recoge(): Argument #2 (\$type) is optional, but if provided, it must be an empty array or an empty string", E_USER_ERROR);
}
$tmp = $type;
if (isset($_REQUEST[$key])) {
if (!is_array($_REQUEST[$key]) && !is_array($type)) {
$tmp = trim(htmlspecialchars($_REQUEST[$key]));
} elseif (is_array($_REQUEST[$key]) && is_array($type)) {
$tmp = $_REQUEST[$key];
array_walk_recursive($tmp, function (&$value) {
$value = trim(htmlspecialchars($value));
});
}
}
return $tmp;
}
// Recogemos accion
$accion = recoge("accion");
// Si recibimos "nuevas", reiniciamos los valores de las cartas 7
if ($accion == "nuevas") {
$_SESSION["carta1"] = rand(1, 10);
$_SESSION["carta2"] = rand(1, 10);
$_SESSION["carta3"] = rand(1, 10);
}
// Volvemos al formulario 8
header("Location:minijuegos-1-4-1.php");
Este programa lo podemos enfocar de dos maneras:
El segundo enfoque tiene la ventaja de que el papel de ambas páginas está claramente separado: la página 1 se encarga únicamente de mostrar el resultado y la página 2 se encarga únicamente de calcular los datos. La "lógica" del programa está separada de la visualización de los datos.
En esta versión, únicamente guardamos en $_SESSION los valores de las tres cartas.
Como en cualquier página que recibe un control de un formulario, añadimos la función recoge() y definimos una variable para recoger el dato
minijuegos-1-5-1.php
<?php
// Accedemos a la sesión 1
session_name("minijuegos-1-5");
session_start();
// Si los valores de sesión no existen, damos valor a las tres cartas 2
if (!isset($_SESSION["carta1"])) {
$_SESSION["carta1"] = rand(1, 10);
$_SESSION["carta2"] = rand(1, 10);
$_SESSION["carta3"] = rand(1, 10);
}
?>
<!DOCTYPE html>
...
<form action="minijuegos-1-5-2.php">
<?php
print " <p>\n";
print " <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" \n";
print " width=\"260\" height=\"190\" viewBox=\"-50 -10 260 190\">\n";
// Mostramos las tres cartas, guardadas en la sesión 3
print " <image href=\"img/cartas/c$_SESSION[carta1].svg\" x=\"0\" y=\"0\" height=\"150\" transform=\"rotate(-15, 0, 150)\"/>\n";
print " <image href=\"img/cartas/c$_SESSION[carta2].svg\" x=\"0\" y=\"0\" height=\"150\" transform=\"rotate(0, 0, 150)\"/>\n";
print " <image href=\"img/cartas/c$_SESSION[carta3].svg\" x=\"0\" y=\"0\" height=\"150\" transform=\"rotate(15, 0, 150)\"/>\n";
print " </svg>\n";
print " </p>\n";
print "\n";
// Comprobamos si se ha obtenido un trío, una pareja o cartas distintas 4
// y mostramos la jugada obtenida en cada caso
if ($_SESSION["carta1"] == $_SESSION["carta2"] && $_SESSION["carta2"] == $_SESSION["carta3"]) {
print " <p>Ha obtenido un trío de $_SESSION[carta1].<p>\n";
} elseif ($_SESSION["carta1"] == $_SESSION["carta2"] || $_SESSION["carta1"] == $_SESSION["carta3"]) {
print " <p>Ha obtenido una pareja de $_SESSION[carta1].<p>\n";
} elseif ($_SESSION["carta2"] == $_SESSION["carta3"]) {
print " <p>Ha obtenido una pareja de $_SESSION[carta2].<p>\n";
} else {
print " <p>Ha obtenido un " . max($_SESSION["carta1"], $_SESSION["carta2"], $_SESSION["carta3"]) . ".<p>\n";
}
print "\n";
?>
<p><button type="submit" name="accion" value="nuevas">Nuevas cartas</button></p>
</form>
...
minijuegos-1-5-2.php
<?php
// Accedemos a la sesión 5
session_name("minijuegos-1-5");
session_start();
// Si los valores de sesión no existen, redirigimos a la primera página 6
if (!isset($_SESSION["carta1"])) {
header("Location:minijuegos-1-5-1.php");
exit;
}
// Función de recogida de datos 7
function recoge($key, $type = "")
{
if (!is_string($key) && !is_int($key) || $key == "") {
trigger_error("Function recoge(): Argument #1 (\$key) must be a non-empty string or an integer", E_USER_ERROR);
} elseif ($type !== "" && $type !== []) {
trigger_error("Function recoge(): Argument #2 (\$type) is optional, but if provided, it must be an empty array or an empty string", E_USER_ERROR);
}
$tmp = $type;
if (isset($_REQUEST[$key])) {
if (!is_array($_REQUEST[$key]) && !is_array($type)) {
$tmp = trim(htmlspecialchars($_REQUEST[$key]));
} elseif (is_array($_REQUEST[$key]) && is_array($type)) {
$tmp = $_REQUEST[$key];
array_walk_recursive($tmp, function (&$value) {
$value = trim(htmlspecialchars($value));
});
}
}
return $tmp;
}
// Recogemos accion
$accion = recoge("accion");
// Si recibimos "nuevas", reiniciamos los valores de las cartas 8
if ($accion == "nuevas") {
$_SESSION["carta1"] = rand(1, 10);
$_SESSION["carta2"] = rand(1, 10);
$_SESSION["carta3"] = rand(1, 10);
}
// Volvemos al formulario 9
header("Location:minijuegos-1-5-1.php");
En esta versión, guardamos en $_SESSION los valores de las tres cartas y la descripción de la jugada obtenida.
Como en cualquier página que recibe un control de un formulario, añadimos la función recoge() y definimos una variable para recoger el dato
minijuegos-1-5-1-b.php
<?php
// Accedemos a la sesión 1
session_name("minijuegos-1-5-b");
session_start();
// Si los valores de sesión no existen, redirigimos a la segunda página 2
if (!isset($_SESSION["carta1"])) {
header("Location:minijuegos-1-5-2.php");
exit;
}
?>
<!DOCTYPE html>
...
<form action="minijuegos-1-5-2-b.php">
<?php
print " <p>\n";
print " <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" \n";
print " width=\"260\" height=\"190\" viewBox=\"-50 -10 260 190\">\n";
// Mostramos las tres cartas, guardadas en la sesión 3
print " <image href=\"img/cartas/c$_SESSION[carta1].svg\" x=\"0\" y=\"0\" height=\"150\" transform=\"rotate(-15, 0, 150)\"/>\n";
print " <image href=\"img/cartas/c$_SESSION[carta2].svg\" x=\"0\" y=\"0\" height=\"150\" transform=\"rotate(0, 0, 150)\"/>\n";
print " <image href=\"img/cartas/c$_SESSION[carta3].svg\" x=\"0\" y=\"0\" height=\"150\" transform=\"rotate(15, 0, 150)\"/>\n";
print " </svg>\n";
print " </p>\n";
print "\n";
// Mostramos la jugada obtenida, guardada en la sesión 4
print " <p>Ha obtenido $_SESSION[mano].</p>\n";
print "\n";
?>
<p><button type="submit" name="accion" value="nuevas">Nuevas cartas</button></p>
</form>
...
minijuegos-1-5-2-b.php
<?php
// Accedemos a la sesión 5
session_name("minijuegos-1-5-b");
session_start();
// Si los valores de sesión no existen, damos valor a las tres cartas 6
// Más adelante comprobamos qué jugada se ha obtenido
if (!isset($_SESSION["carta1"])) {
$_SESSION["carta1"] = rand(1, 10);
$_SESSION["carta2"] = rand(1, 10);
$_SESSION["carta3"] = rand(1, 10);
}
// Función de recogida de datos 7
function recoge($key, $type = "")
{
if (!is_string($key) && !is_int($key) || $key == "") {
trigger_error("Function recoge(): Argument #1 (\$key) must be a non-empty string or an integer", E_USER_ERROR);
} elseif ($type !== "" && $type !== []) {
trigger_error("Function recoge(): Argument #2 (\$type) is optional, but if provided, it must be an empty array or an empty string", E_USER_ERROR);
}
$tmp = $type;
if (isset($_REQUEST[$key])) {
if (!is_array($_REQUEST[$key]) && !is_array($type)) {
$tmp = trim(htmlspecialchars($_REQUEST[$key]));
} elseif (is_array($_REQUEST[$key]) && is_array($type)) {
$tmp = $_REQUEST[$key];
array_walk_recursive($tmp, function (&$value) {
$value = trim(htmlspecialchars($value));
});
}
}
return $tmp;
}
// Recogemos accion
$accion = recoge("accion");
// Si recibimos "nuevas", reiniciamos los valores de las cartas 8
if ($accion == "nuevas") {
$_SESSION["carta1"] = rand(1, 10);
$_SESSION["carta2"] = rand(1, 10);
$_SESSION["carta3"] = rand(1, 10);
}
// Comprobamos si se ha obtenido un trío, una pareja o cartas distintas 9
if ($_SESSION["carta1"] == $_SESSION["carta2"] && $_SESSION["carta2"] == $_SESSION["carta3"]) {
$_SESSION["mano"] = "un trío de $_SESSION[carta1]";
} elseif ($_SESSION["carta1"] == $_SESSION["carta2"] || $_SESSION["carta1"] == $_SESSION["carta3"]) {
$_SESSION["mano"] = "una pareja de $_SESSION[carta1]";
} elseif ($_SESSION["carta2"] == $_SESSION["carta3"]) {
$_SESSION["mano"] = "una pareja de $_SESSION[carta2]";
} else {
$_SESSION["mano"] = "un " . max($_SESSION["carta1"], $_SESSION["carta2"], $_SESSION["carta3"]);
}
// Volvemos al formulario 10
header("Location:minijuegos-1-5-1.php");
En esta versión, guardamos en $_SESSION los valores de las tres cartas y el resultado de la partida.
Como en cualquier página que recibe un control de un formulario, añadimos la función recoge() y definimos una variable para recoger el dato
minijuegos-1-6-1.php
<?php
// Accedemos a la sesión 1
session_name("minijuegos-1-6");
session_start();
// Si los valores de sesión no existen, redirigimos a la segunda página2
if (!isset($_SESSION["cartaR1"])) {
header("Location:minijuegos-1-6-2.php");
exit;
}
?>
<!DOCTYPE html>
...
<form action="minijuegos-1-6-2.php">
<?php
print " <p>\n";
print " <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" \n";
print " width=\"400\" height=\"190\" viewBox=\"-50 -10 400 190\">\n";
// Mostramos las seis cartas, guardadas en la sesión 3
print " <image href=\"img/cartas/p$_SESSION[cartaN1].svg\" x=\"0\" y=\"0\" height=\"150\" transform=\"rotate(-15, 0, 150)\"/>\n";
print " <image href=\"img/cartas/p$_SESSION[cartaN2].svg\" x=\"0\" y=\"0\" height=\"150\" transform=\"rotate(0, 0, 150)\"/>\n";
print " <image href=\"img/cartas/p$_SESSION[cartaN3].svg\" x=\"0\" y=\"0\" height=\"150\" transform=\"rotate(15, 0, 150)\"/>\n";
print " <image href=\"img/cartas/d$_SESSION[cartaR1].svg\" x=\"200\" y=\"0\" height=\"150\" transform=\"rotate(-15, 200, 150)\"/>\n";
print " <image href=\"img/cartas/d$_SESSION[cartaR2].svg\" x=\"200\" y=\"0\" height=\"150\" transform=\"rotate(0, 200, 150)\"/>\n";
print " <image href=\"img/cartas/d$_SESSION[cartaR3].svg\" x=\"200\" y=\"0\" height=\"150\" transform=\"rotate(15, 200, 150)\"/>\n";
print " </svg>\n";
print " </p>\n";
print "\n";
// Mostramos el ganador, guardado en la sesión 4
print " <p>$_SESSION[ganador]</p>\n";
print "\n";
?>
<p><button type="submit" name="accion" value="nuevas">Nuevas cartas</button></p>
</form>
...
minijuegos-1-6-2.php
<?php
// Accedemos a la sesión 5
session_name("minijuegos-1-6");
session_start();
// Si los valores de sesión no existen, damos valor a las seis cartas 6
// Más adelante comprobamos quién es el ganador
if (!isset($_SESSION["cartaN1"])) {
$_SESSION["cartaN1"] = rand(1, 10);
$_SESSION["cartaN2"] = rand(1, 10);
$_SESSION["cartaN3"] = rand(1, 10);
$_SESSION["cartaR1"] = rand(1, 10);
$_SESSION["cartaR2"] = rand(1, 10);
$_SESSION["cartaR3"] = rand(1, 10);
}
// Función de recogida de datos 7
function recoge($key, $type = "")
{
if (!is_string($key) && !is_int($key) || $key == "") {
trigger_error("Function recoge(): Argument #1 (\$key) must be a non-empty string or an integer", E_USER_ERROR);
} elseif ($type !== "" && $type !== []) {
trigger_error("Function recoge(): Argument #2 (\$type) is optional, but if provided, it must be an empty array or an empty string", E_USER_ERROR);
}
$tmp = $type;
if (isset($_REQUEST[$key])) {
if (!is_array($_REQUEST[$key]) && !is_array($type)) {
$tmp = trim(htmlspecialchars($_REQUEST[$key]));
} elseif (is_array($_REQUEST[$key]) && is_array($type)) {
$tmp = $_REQUEST[$key];
array_walk_recursive($tmp, function (&$value) {
$value = trim(htmlspecialchars($value));
});
}
}
return $tmp;
}
// Recogemos accion
$accion = recoge("accion");
// Si recibimos "nuevas", reiniciamos los valores de las cartas 8
if ($accion == "nuevas") {
$_SESSION["cartaN1"] = rand(1, 10);
$_SESSION["cartaN2"] = rand(1, 10);
$_SESSION["cartaN3"] = rand(1, 10);
$_SESSION["cartaR1"] = rand(1, 10);
$_SESSION["cartaR2"] = rand(1, 10);
$_SESSION["cartaR3"] = rand(1, 10);
}
// Comprobamos si el primer jugador ha obtenido un trío, una pareja o cartas distintas 9
if ($_SESSION["cartaN1"] == $_SESSION["cartaN2"] && $_SESSION["cartaN2"] == $_SESSION["cartaN3"]) {
$manoN = 3;
$valorN = $_SESSION["cartaN1"];
} elseif ($_SESSION["cartaN1"] == $_SESSION["cartaN2"] || $_SESSION["cartaN1"] == $_SESSION["cartaN3"]) {
$manoN = 2;
$valorN = $_SESSION["cartaN1"];
} elseif ($_SESSION["cartaN2"] == $_SESSION["cartaN3"]) {
$manoN = 2;
$valorN = $_SESSION["cartaN2"];
} else {
$manoN = 1;
$valorN = max($_SESSION["cartaN1"], $_SESSION["cartaN2"], $_SESSION["cartaN3"]);
}
// Comprobamos si el segundo jugador ha obtenido un trío, una pareja o cartas distintas 10
if ($_SESSION["cartaR1"] == $_SESSION["cartaR2"] && $_SESSION["cartaR2"] == $_SESSION["cartaR3"]) {
$manoR = 3;
$valorR = $_SESSION["cartaR1"];
} elseif ($_SESSION["cartaR1"] == $_SESSION["cartaR2"] || $_SESSION["cartaR1"] == $_SESSION["cartaR3"]) {
$manoR = 2;
$valorR = $_SESSION["cartaR1"];
} elseif ($_SESSION["cartaR2"] == $_SESSION["cartaR3"]) {
$manoR = 2;
$valorR = $_SESSION["cartaR2"];
} else {
$manoR = 1;
$valorR = max($_SESSION["cartaR1"], $_SESSION["cartaR2"], $_SESSION["cartaR3"]);
}
// Comparamos el resultado de ambos jugadores para saber quién ha ganado 11
if ($manoN > $manoR) {
$_SESSION["ganador"] = "Ha ganado el jugador de las cartas negras.";
} elseif ($manoR > $manoN) {
$_SESSION["ganador"] = "Ha ganado el jugador de las cartas rojas.";
} elseif ($valorN > $valorR) {
$_SESSION["ganador"] = "Ha ganado el jugador de las cartas negras.";
} elseif ($valorR > $valorN) {
$_SESSION["ganador"] = "Ha ganado el jugador de las cartas rojas.";
} else {
$_SESSION["ganador"] = "Han empatado.";
}
// Volvemos al formulario 12
header("Location:minijuegos-1-5-1.php");