Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/ProgramacionWeb/INAEM2021/Sesiones/ejercicios»

De WikiEducator
Saltar a: navegación, buscar
(Ejercicio 3 : Array en variable de sesión)
Línea 30: Línea 30:
 
===[[Usuario:ManuelRomero/ProgramacionWeb/Sesiones/ejercicios/ejercicio3|Ejercicio 3 : Array en variable de sesión]]===
 
===[[Usuario:ManuelRomero/ProgramacionWeb/Sesiones/ejercicios/ejercicio3|Ejercicio 3 : Array en variable de sesión]]===
 
<br />
 
<br />
{{MRM_Actividad|Title=Ejercicio 1 Cuenta visitas|
+
{{MRM_Actividad|Title=Ejercicio 3 Juego del dado|
 
*Vamos a establecer un juego de tirar dados
 
*Vamos a establecer un juego de tirar dados
 
*El usuario tirará los dados hasta 10 veces.
 
*El usuario tirará los dados hasta 10 veces.
*En cada  jugada tira dos veces los dados
+
*En cada  jugada se realizan dos tiradas del dado
*Gana si saca dos números iguales o la suma de los números  es menor que 5
+
*Cada jugada, gana si saca dos números iguales o la suma de los números  es menor que 5
 
*Al final de las 10' jugadas nos muestra todas las jugadas y las veces que ha ganado
 
*Al final de las 10' jugadas nos muestra todas las jugadas y las veces que ha ganado
 +
<!--
 +
<source lang=php>
 +
<?php
 +
ini_set('display_errors', true);
 +
error_reporting(E_ALL);
 +
/*
 +
* Vamos a establecer un juego de tirar dados
 +
El usuario tirará los dados hasta 10 veces.
 +
En cada jugada tira dos veces los dados
 +
Gana si saca dos números iguales o la suma de los números es menor que 5
 +
Al final de las 10' jugadas nos muestra todas las jugadas y las veces que ha ganado
 +
*/
 +
 +
function realiza_jugada(&$html_jugada_actual)
 +
{
 +
    $tirada1 = rand(1, 6);
 +
    $tirada2 = rand(1, 6);
 +
    if ($tirada1 == $tirada2) {
 +
        $resultado = true;
 +
        $texto_resultado = "ganado";
 +
    } else {
 +
        $resultado = false;
 +
        $texto_resultado = "ganado";
 +
    }
 +
    $jugada['tirada1'] = $tirada1;
 +
    $jugada['tirada2'] = $tirada2;
 +
    $jugada['resultado'] = $resultado;
 +
    $html_jugada_actual = <<<FIN
 +
<h3>Valor de la tirada primera <span style="color:red">$tirada1</span></h3>
 +
<h3>Valor de la tirada segunda <span style="color:red">$tirada2</span></h3>
 +
<h3>En esta jugada has  <span style="color:red">$texto_resultado </span></h3>
 +
FIN;
 +
 +
    return $jugada;
 +
}
 +
 +
function muestra_resultado()
 +
{
 +
    $jugadas = $_SESSION['jugadas'];
 +
    $total_ganadas = 0;
 +
 +
    $html = "<table>";
 +
    $html .= "<tr><th>Número de jugada</th><th>Tirada 1</th><th>Tirada 2</th><th>Resultado</th></tr>";
 +
    foreach ($jugadas as $numero_jugada => $jugada) {
 +
        $resultado = $jugada['resultado'];
 +
        if ($resultado) {
 +
            $total_ganadas++;
 +
            $texto_ganado = "ganado";
 +
        } else
 +
            $texto_ganado = "perdido";
 +
 +
        $html .= <<<FIN
 +
        <tr>
 +
            <td>$numero_jugada</td>
 +
            <td>{$jugada['tirada1']}</td>
 +
            <td>{$jugada['tirada2']}</td>
 +
            <td>$texto_ganado</td>
 +
        </tr>
 +
 +
FIN;
 +
    }
 +
 +
    $html .= "</table>";
 +
    $plural = $total_ganadas > 1 ? "s" : "";
 +
    $html .= "<h2>En total has ganado $total_ganadas jugada{$plural}</h2>";
 +
    return $html;
 +
}
 +
 +
session_start();
 +
$opcion = $_POST['submit'] ?? null;
 +
if ($opcion == "Reiniciar juego") {
 +
    session_destroy();
 +
    session_start();
 +
}
 +
 +
$jugada = realiza_jugada($html_jugada_actual);
 +
$_SESSION['jugadas'][] = $jugada;
 +
 +
$numero_jugada = sizeof($_SESSION['jugadas']);
 +
if ($numero_jugada >= 10)
 +
    $html_resumen_juego = muestra_resultado();
 +
?>
 +
 +
 +
<!doctype html>
 +
<html lang="en">
 +
<head>
 +
    <meta charset="UTF-8">
 +
    <meta name="viewport"
 +
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 +
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
 +
    <title>Document</title>
 +
</head>
 +
<body>
 +
<h1>Juego de dados</h1>
 +
<h2>El juego consiste en tirar 10 veces el dado</h2>
 +
<fieldset>
 +
    <legend>Jugada Actual <span style="color:green"><?=$numero_jugada?></span></legend>
 +
 +
<h3>Resultado obtenido en la jugada actual</h3>
 +
<?= $html_jugada_actual ?>
 +
</fieldset>
 +
<?php if ($numero_jugada >= 10): ?>
 +
    <h3>Fin de juego </h3>
 +
    <?= $html_resumen_juego;
 +
endif;
 +
?>
 +
<form action="index.php" method="POST">
 +
    <input type="submit" value="Reiniciar juego" name="submit">
 +
    <input type="submit" value="Jugar" name="submit">
 +
</form>
 +
 +
 +
</body>
 +
</html>
 +
 +
</source>
 +
-->
 
}}
 
}}
 
<br />
 
<br />

Revisión de 19:48 15 mar 2022



Sesiones

Localiza variables de sesión



Icon activity.jpg
Variables de sesión
  • Localiza y actualiza estas directivas en tu fichero de configuración
  • coméntalas con tus palabras en dicho fichero



Ejercicio 1 : Cuenta visitas



Icon activity.jpg
Ejercicio 1 Cuenta visitas
Haz un programa que te cuente cuantas visitas recibe la página
  • Puedes poner un botón submit para recargar la página.
  • Indica mediane mensaje si accedes haciendo un click, o bien escribiendo la url
  • Contabiliza todos los accesos (por click o escribiendo la url en el navegado).




Ejercicio 2 : Visitas en la misma sesión con fecha



Icon activity.jpg
Ejercicio 2: Fechas de cada visita
  • Modifica el programa anterior para almacenar el momento en el cual se produjo cada visita
  • Anota hora, minuto y segundo
  • Visualiza todas las conexiones en la sesción actual y el momento en el que se produjeron
  • Añade un botón para borrar las variables de sesión
  • Realiza la visualización en orden inverso a como se han producido (primero la última, etc..)




Ejercicio 3 : Array en variable de sesión



Icon activity.jpg
Ejercicio 3 Juego del dado
  • Vamos a establecer un juego de tirar dados
  • El usuario tirará los dados hasta 10 veces.
  • En cada jugada se realizan dos tiradas del dado
  • Cada jugada, gana si saca dos números iguales o la suma de los números es menor que 5
  • Al final de las 10' jugadas nos muestra todas las jugadas y las veces que ha ganado