Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/formularios/practica»

De WikiEducator
Saltar a: navegación, buscar
(Juego de adivinar un número)
(Página reemplazada por « {{:Usuario:ManuelRomero/ProgramacionWeb/Formularios/nav}} {{:Usuario:ManuelRomero/ProgramacionWeb/Formularios/practica_adivina_numero}}»)
 
(5 revisiones intermedias por el mismo usuario no mostrado)
Línea 2: Línea 2:
 
{{:Usuario:ManuelRomero/ProgramacionWeb/Formularios/nav}}
 
{{:Usuario:ManuelRomero/ProgramacionWeb/Formularios/nav}}
  
===Juego de adivinar un número===
+
{{:Usuario:ManuelRomero/ProgramacionWeb/Formularios/practica_adivina_numero}}
puedes probar una posibles solución en
+
http://manuel.infenlaces.com/distancia/dwes/practicas/practica_3/
+
*Puedes clonar los ficheros aquí
+
<source lang=bash>
+
git clone  https://github.com/MAlejandroR/practica_adivina.git
+
</source>
+
;Se trata de hacer un juego para que la aplicación adivine un número que tu pienses
+
*La aplicación me mostrará 3 opciones
+
 
+
*El usuario pensará un número del 1 al mayor número posible según la opción seleccionada
+
*Una posible pantalla inicial del juego podría ser
+
[[imagen:adivina_index.png|600px]]
+
 
+
<hr / >{{MRM_Actividad|Title=Requisitos de la práctica|
+
*Como hemos indicado, '''''el usuario de la aplicación piensa un número  en el intervalo establecido'''''.
+
*Después la aplicación, en diferentes intentos  procederá a adivinarlo.
+
*La aplicación deberá usar la búsqueda dicotómica o algorítmica del número y así siempre lo acertará.
+
*En cada iteración le informará de si el número que te especifica es '''menor, mayor o si lo ha acertado'''.
+
*El número de intentos que hay, queda establecido según la opción seleccionada.
+
*En cualquier momento podrás reiniciar el juego mientras estás jugando.
+
**(Se calculará otro número y tendrás 10 intentos de nuevo)
+
*La pantalla de jugar podría ser
+
[[imagen:adivina2.png|400px]]
+
<hr / >
+
*Deberás de tener tres fichero:  
+
#index.html que te generará la información
+
#jugar.php que es es juego
+
#fin.php cuando termine la partida con la información del juego realizado.<br />
+
[[imagen:adivina3.png|800px]]
+
<hr />
+
*Selecciona la práctica 3 en la siguiente url
+
http://manuel.infenlaces.com/
+
}}
+
 
+
 
+
 
+
{{Plegable|hide|juego adivinar: index.html|
+
<source lang=php>
+
<!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>Adivina número</title>
+
    </head>
+
    <body>
+
        <fieldset style="width: 60%;float:left;margin-left: 20%; background: bisque">
+
            <legend><h1>Juego adivina número</h1></legend>
+
 
+
 
+
            <h2>    Debes de adivinar un número que yo genero</h2>
+
            <h2>    El número está entre 0 y 1024</h2>
+
            <h2>    Cada vez que verifiques yo te diré</h2>
+
            <ul>
+
                <ol>Si el número buscado es mayor</ol>
+
                <ol>Si el número buscado es menor</ol>
+
                <ol>Si has aceertado el número</ol>
+
            </ul>
+
            <h2>    Tienes 10 intentos</h2>
+
            <h2>    Se te indicará el número de intentos que llevas</h2>
+
            <form action="jugar.php"><input type="submit" value="Empezar juego"></form>
+
        </fieldset>
+
 
+
    </body>
+
</html>
+
</source>
+
}}
+
{{Plegable|hide|jugar.php|
+
<source lang=php>
+
<?php
+
switch ($_POST['enviar']) {
+
    case 'jugar':
+
        $numero_adivinar = filter_input(INPUT_POST, 'numAdivinar');
+
        $intentos = filter_input(INPUT_POST, 'intentos');
+
        $numero = filter_input(INPUT_POST, 'numero');
+
        $intentos++;
+
        $msj = valida($numero_adivinar, $numero);
+
        if ($msj === "FIN")
+
            terminar(true);
+
        if ($intentos === 10)
+
            terminar(false);
+
        $msj.="<br />Llevas $intentos intentos restan " . (10 - $intentos);
+
        $reiniciar = "";
+
        break;
+
    case 'volver':
+
        header("Location:index.php");
+
        exit();
+
 
+
    case 'reiniciar':
+
        $numero_adivinar = rand(0, 1024);
+
        $msj = "Volvemos a empezar el juego";
+
        $intentos = 0;
+
        $reiniciar = "disabled";
+
        break;
+
 
+
    default: //vengo del index
+
        $numero_adivinar = rand(0, 1024);
+
        $msj = "Vamos a empezar a jugar, inserta un número";
+
        $reiniciar = "disabled";
+
        $intentos = 0;
+
}
+
 
+
function valida($numero_adivinar, $numero) {
+
    switch (true) {
+
        case ($numero > $numero_adivinar):
+
            $msj = "El número $numero es MAYOR que el número buscado";
+
 
+
            break;
+
        case ($numero < $numero_adivinar):
+
            $msj = "El número $numero es MENOR que el número buscado";
+
            break;
+
        case ($numero === $numero_adivinar):
+
            $msj = "FIN";
+
            break;
+
    }
+
    return $msj;
+
}
+
 
+
function terminar($estado) {
+
    global $msj, $numero, $intentos, $numero_adivinar, $reiniciar;
+
    if ($estado === true) {
+
        $msj = "FELICIDADES,$numero ES EL NÚMERO BUSCADO<br />";
+
        $msj.="Lo has acertado en $intentos intentos";
+
        $reiniciar = disabled;
+
        $intentos = 0;
+
    } else {
+
        $msj = "HAS TERMINADO TUS INTENTOS<br />";
+
        $msj.="El número buscado es $numero_adivinar<br />";
+
        $msj.="Buena suerte para la próxima vez";
+
 
+
        $reiniciar = disabled;
+
        $intentos = 0;
+
    }
+
}
+
?>
+
 
+
 
+
<!doctype html>
+
<html lang="en">
+
    <head>
+
        <meta char3="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 style="width: 60%;float:left;margin-left: 20%; ">
+
 
+
        <h3><?php echo $msj ?></h3>
+
        <fieldset style="width:30%;background:bisque ">
+
            <legend>Empieza el juego</legend>
+
            <form action="jugar.php" method="POST" >
+
                Escribe un número <input type="text" name="numero" id="">
+
                <hr />
+
                <input type="submit" value="jugar" name="enviar" >
+
                <input type="submit" value="reiniciar" name="enviar" <?php echo $reiniciar ?> >
+
                <input type="submit" value="volver" name="enviar"  >
+
                <input type="hidden" value="<?php echo $intentos ?>" name="intentos">
+
                <input type="hidden" value="<?php echo $numero_adivinar ?>" name="numAdivinar">
+
            </form>
+
        </fieldset>
+
 
+
    </body>
+
</html>
+
</source>
+
 
+
}}
+
 
+
 
+
*Realizaremos esta práctica siguiendo o implementando los siguientes requisitos
+
#RF1: El fichero '''''index.php''''' me informará del juego
+
#RF2: El mismo fichero '''''index.php''''' me mostrará las opciones (ver imagen anterior)
+
#RF3: El fichero '''''index.php''''' tendrá un botón para empezar el juego
+
#RNF1:  Deberemos identificar todas las variables que necesito
+
##Realiza un análisis de juego
+
##Juega directamente y anótate todas las variables que necesitas (''$jugada, $max, $min, $intentos,...''').
+
#RF4 En el primer acceso a '''''jugar.php''''' inicializo las variables
+
#RF5 Establece la estrategia (inputs:hidden) para pasar los valores de las variables
+
#RF6 Actualiza las variables según jugada y apúntales en los hidden para la siguiente jugada
+
#RF7 Controla el fin del juego (exceder el número de jugadas o haber acertado el número)
+

Última revisión de 21:37 30 dic 2024



Juego de adivinar un número

Se trata de hacer un juego para que la aplicación adivine un número que tu pienses
  • La aplicación me mostrará 3 opciones
  • El usuario pensará un número del 1 al mayor número posible según la opción seleccionada
  • Una posible pantalla inicial del juego podría ser

Adivina index.png



Icon activity.jpg
Requisitos de la práctica
  • Como hemos indicado, el usuario de la aplicación piensa un número en el intervalo establecido.
  • Después la aplicación, en diferentes intentos procederá a adivinarlo.
  • La aplicación deberá usar la búsqueda dicotómica o algorítmica del número y así siempre lo acertará.
  • En cada iteración le informará de si el número que te especifica es menor, mayor o si lo ha acertado.
  • El número de intentos que hay, queda establecido según la opción seleccionada.
  • En cualquier momento podrás reiniciar el juego mientras estás jugando.
**(Se calculará otro número y tendrás 10 intentos de nuevo)
  • La pantalla de jugar podría ser

Adivina2.png


  • Deberás de tener tres fichero:
  1. index.html que te generará la información
  2. jugar.php que es es juego
  3. fin.php cuando termine la partida con la información del juego realizado.

Adivina3.png





  • Realizaremos esta práctica siguiendo o implementando los siguientes requisitos
  1. RF1: El fichero index.php me informará del juego
  2. RF2: El mismo fichero index.php me mostrará las opciones (ver imagen anterior)
  3. RF3: El fichero index.php tendrá un botón para empezar el juego
  4. RNF1: Deberemos identificar todas las variables que necesito
    1. Realiza un análisis de juego
    2. Juega directamente y anótate todas las variables que necesitas ($jugada, $max, $min, $intentos,...').
  5. RF4 En el primer acceso a jugar.php inicializo las variables
  6. RF5 Establece la estrategia (inputs:hidden) para pasar los valores de las variables
  7. RF6 Actualiza las variables según jugada y apúntales en los hidden para la siguiente jugada
  8. RF7 Controla el fin del juego (exceder el número de jugadas o haber acertado el número)