Adivina un número aleatorio

Publicado el 23.10.2021 a las 13:29

Adivina un número aleatorio

Adivina un número aleatorio

Haremos un programa para adivinar un número aleatorio. Suele ser típico en las pruebas técnicas

Enunciado del problema

Crear un programa el cual tratará de adivinar el número aleatorio que generaremos entre 1 y 10.

Nuestro objetivo es adivinar el número. Si fallamos nos dirán si es mayor o menor que el número buscado.

También el programa nos deberá de indicar el número de intentos requeridos

Resolución

Antes de mostrarte el código, como nos están pidiendo un programa yo lo haré todo como una aplicación web, para usar el HTML como interfaz de usuario.

Se podría hacer también con Node o con Deno, pero creo que lo más práctico es hacer así, ya que no sabemos si quien nos evaluará el ejercicio tendrá Node o Deno instalado.


Para sumar puntos le podríamos añadir test unitarios, pero eso lo dejo para más adelante.

No obstante, te dejo el link a un artículo donde explico como resolver el algoritmo fizzbuzz con tests para sumar más puntos de cara al entrevistador.


Ahora sí:

        
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Adivina</title>
  </head>
  <body>
    <div>
      <label for="">Escribe un número entre el 1 y el 10</label>
      <input type="number" placeholder="1-10" min="1" max="10" id="input" />
      <button onclick="miFunc()">A bailar</button>
    </div>

    <script>
      function getRandomNumber() {
        const random = +(Math.random() * 10).toFixed(0);
        if (random === 0) return 1;
        return random;
      }
      reset();      

      function miFunc() {
        const inputValue= +document.getElementById('input').value;
        if(inputValue<1||inputValue>10) return alert("Debe introducir un número entre 1 y 10");
        attemps++;
        if(inputValue>randomNumber) return alert(`Inténtalo con un número menor. ${attemps} intentos.`);
        if(inputValue<randomNumber) return alert(`Inténtalo con un número mayor. ${attemps} intentos.`);
        if(inputValue===randomNumber){
            alert(`Bravo, lo has adivinado en ${attemps} intentos`);
            reset();
        } 
      }
      function reset(){
        randomNumber = getRandomNumber();
        attemps=0;
        console.log(`Número aleatorio ${randomNumber}`);
      }
    </script>
  </body>
</html>
  
      

Hasta luego 🖖

Servicios

Software

IoT

Digitalización

Aplicaciones móviles

Consultoría

fjmduran.com v0.2.2