Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/ProgramacionWeb/INAEM2021/Sesiones/ejercicios»
De WikiEducator
(→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 | + | {{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 | + | *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 | *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
Ejercicio 1 : Cuenta visitas
|
Ejercicio 2 : Visitas en la misma sesión con fecha
|
Ejercicio 3 : Array en variable de sesión
|