Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Interrumpiendo una Repetición ERROR?

Hola!

Estuve un rato probando y probando y el error que obtengo es que la variable numeroUsuario no está definida en la segunda mitad del código, por asi llamarle. Y según veo es porque la variable está definidia DENTRO del WHILE y al momento de salir de él (después del contador++ ) ya no está definido para seguir usándolo.

Deja de imprimir, y aunque revise en el video el código del instructor, no lo logro. Quizá sea lo que comento, quizá sea eso y alguna otra cosa, pero a la 1 am mis ojos ya no pueden más jajaja

Sugerencias por favor. Gracias!

<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Adivina el número</title>

    <style>
      body {
        background-color: lightgray;
      }

      h1 {
        font-family: Arial, Helvetica, sans-serif;
        font-size: 6rem;
        padding: 3px;
        color: black;
        letter-spacing: 15px;
        text-align: center;
        font-weight: 200;
      }

      p {
        font-family: monospace;
        padding-top: 30px;
        font-size: 2rem;
        text-align: center;
        color: black;
      }
    </style>
  </head>

  <body>
    <h1>ADIVINA...</h1>
    <hr />

    <script>
      // funciones --------------->
      function saltarLinea() {
        document.write("<br>");
      }

      function print(texto) {
        document.write(texto);
        saltarLinea();
      }

      // variables --------------->
      let numeroSecreto = Math.round(Math.random() * 10);
      let intentos = 3;
      let contador = 1;

      // programa --------------->
      while (contador <= intentos) {
        let numeroUsuario = parseInt(
          prompt(
            "¿Andas clarividente?, intenta adivinar el número secreto entre 0 y 10. Suerte."
          )
        );

        if (numeroSecreto == numeroUsuario) {
          alert(
            "¡Oigan todos, aquí al intento " +
              contador +
              " supo que el número era el " +
              numeroSecreto +
              "!"
          );
          break;
        } else {
          alert("No realmente. Sigue intentando.");
        }

        contador++;
      }

      if (numeroSecreto == numeroUsuario) {
        print(
          "<p>¡Supo el número secreto en el intento" + contador + ", el númera era el " + numeroSecreto + " ¡felicidades!</p>"
        );
      } else {
        print(
          "<p>El número secreto era el " +
            numeroSecreto +
            ", ¿quiere intentar de nuevo?, presione F5.</p>"
        );
      }

      print("<p>FIN</p>");
    </script>
  </body>
</html>

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

2 respuestas
solución!

Hola Roberto, sucede que al declarar la variable let nombreUsuariodentro del while, el alcance de la variable es local ,por tanto, solo funcionará dentro de ese bloque. También, si no desea declararla por fuera del while, puede escribirla dentro del while como numero usuario , Sin ningún tipo de variable let, var, o const, de manera que el programa automaticamente la tomará como una variable global. Un saludo

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Muchas MUCHAS gracias Luis, mucho más claro. Leeré aún más del tema pronto para estar más claro aún. Gracias!