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)
6
respuestas

Un desastre_Ayuda con el código por favor!

Quiero ejecutar el código y se me tilda el navegador (no responde), y luego mi netbook comienza a funcionar SUPER-lento. Probablemente sea el loop del código (no tengo conocimientos previos, al inicio de este curso en programación). También es probable que haya error/es en otra parte del código, ya que como dijo el instructor tomé como plantilla la versión vieja de juego_secreto.html. Además al funcionar todo mal no puedo acceder a "Herramientas para desarrolladores" Muchas gracias de antemano!

6 respuestas

Buenas, podrías poner el código así vemos dónde y si es que hay algún error? saludos

Gracias de antemanos Lucas!! Repito el código quitando la primer parte de html (creo que por eso no era visible mi código al iniciar el post), el script de java también lo voy a quitar:

function aleatorio() {

var secretos = Math.round(Math.random()*10); 

}

function sortearNumeros(cantidad) {
    var secretos = [];
    var contador = 1;

    while(contador <= cantidad) {
        var numeroAleatorio = aleatorio();
        console.log(numeroAleatorio)   //MUESTRA EL REGISTRO EN EL NAVEGADOR
        var encontrado = false;

        if (numeroAleatorio !=0 ) {
            for (var posicion = 0; posicion < secretos.length; posicion++) {
                if (numeroAleatorio == secretos[posicion]) {  //VAR posicion EN LUGAR DE VAR i
                    encontrado = true;
                    break;     
                }
            }
            if (encontrado == false) {
                secretos.push(numeroAleatorio);  //push IGRESA VALORES A LA VARIABLE
                contador++;
            }

        }

    }

    return secretos

}


var secretos = sortearNumeros(4);
console.log(numeroAleatorio)  //MUESTRA EL REGISTRO DE LA VARIABLR EN EL NAVEGADOR


var boton = document.querySelector("button");
boton.onclick = verificar;   //NO LO PUEDO PONER CON PARENTESIS verificar()
                              //PORQUE SINO LA VERIFICACION, LA HACE AL INICIO
                              //DEL CODIGO DONDE EL VALOR ES = 0.
<script>

function aleatorio(){
    return Math.round(Math.random()*10);
}

function sortearNumeros(cantidad) {
    var secretos = [];
    var contador = 1;

    while(contador <= cantidad) {
        var numeroAleatorio = aleatorio();
        var encontrado = false;

        if (numeroAleatorio !=0 ) {
            for (var posicion = 0; posicion < secretos.length; posicion++) {
                if (numeroAleatorio == secretos[posicion]) { 
                    encontrado = true;
                    break;     
                }
            }
            if (encontrado == false) {
                secretos.push(numeroAleatorio);  
                contador++;

            }

        }

    }

    return secretos

}

    var secretos = sortearNumeros(3);
    var input = document.querySelector("input");
    input.focus()

function verificar() {

    var encontrado = false
    for (i = 0; i < secretos.length;i++){

        if(secretos[i] == parseInt(input.value)){

            alert("acertaste");
            encontrado = true           
            break;
        }
        if (encontrado == false) {
            alert("fallaste");
            break;
        }
    }
}


input.value = ("");
input.focus()

var boton = document.querySelector("button");
boton.onclick = verificar;  
</script>
solución!

Hola compara así debe quedar el código.

<script>
      function aleatorio() {
        return Math.round(Math.random() * 10);
      }

      function sortearNumeros(cantidad) {
        var secretos = [];
        var contador = 1;

        while (contador <= cantidad) {
          var numeroAleatorio = aleatorio();
          console.log(numeroAleatorio);
          var encontrado = false;

          if (numeroAleatorio != 0) {
            for (var posicion = 0; posicion < secretos.length; posicion++) {
              if (numeroAleatorio == secretos[posicion]) {
                encontrado = true;
                break;
              }
            }

            if (encontrado == false) {
              secretos.push(numeroAleatorio);
              contador++;
            }
          }
        }
        return secretos;
      }
      // En JavaScript, los arreglos pueden ser una colección de elementos de cualquier tipo. Esto significa que tú puedes  crear un arreglo con elementos de tipo Cadena , Boolean, Número, Objetos, e incluso otros Arreglos. Aquí hay un ejemplo de un arreglo con otros cuatro elementos: tipo Número, Boolean, Cadena y Objecto.
      // Estos deben ir dentro de corchetes
      var secretos = sortearNumeros(4);

      console.log(secretos);

      //   var secreto = Math.random(Math.round()*10);
      // Las funciones querySelector() y querySelectorAll() existen en Javascript como métodos del objeto document. Ambas nos permiten acceder a elementos del DOM utilizando un selector de CSS. La función querySelector() nos devolverá el primer elemento que coincida con el selector que le pasemos.
      var input = document.querySelector("input");
      input.focus();

      function verificar() {
        var encontrado = false;

        // En este caso la posicion corresponde a la posicion de los numeros entre los corchetes, el length lo que indica es que vaya al arreglo y tome todos los valores que pudieran estar alli.
        for (var posicion = 0; posicion < secretos.length; posicion++) {
          if (parseInt(input.value) == secretos[posicion]) {
            alert("usted acerto");
            encontrado = true;
            break;
          }
        }

        if (encontrado == false) {
          alert("usted erro");
        }
        // aca con value despues de cada iteracion queda vacio el input
        input.value = "";
        input.focus();
      }

      // capturamos el objeto button definido arriba
      var button = document.querySelector("button");
      // al momento que el usuario haga clic en el botton me llame a verificar
      button.onclick = verificar;
    </script>

Primero en la función "aleatorio" debería ir un return:

Antes:

function aleatorio() {
    var secretos = Math.round(Math.random()*10); 
}

Después:

function aleatorio() {
    return Math.round(Math.random() * 10); 
}

En el siguiente código te va a dar error ya que no está defina la variable "numeroAleatorio":

var secretos = sortearNumeros(4);
console.log(numeroAleatorio);

Debería ser:

var secretos = sortearNumeros(4);
console.log(secretos)

Por útlimo te estaría faltando una parte del código, la cual es la siguiente:

var input = document.querySelector("input");
input.focus();

function verificar() {
    var encontrado = false;

    for (var posicion = 0; posicion < secretos.length; posicion++) {
        if (parseInt(input.value) == secretos[posicion]) {
            alert("Usted acertó");
            encontrado = true;
            break;
        }
    }
    if (encontrado == false) {
        alert("Uster erró");
    }
    input.value = "";
    input.focus();
}

Esto fué comparado con el archivo del curso subido a GitHub. Espero haber sido de ayuda, saludos :)

ES cierto Lucas y Carlos ustedes tienen conocimientos previos o van mas avanzados de este curso?? Porque hasta este ejercicio lo seguia al instructor perfectamente, pero con la ultima practica del curso me dejo en off-side Gracias muchachos!!