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

Math.random PROBLEMA

COMPAÑEROS, ALGUNO ME PUEDE DECIR POR QUE MI Math.random no es aleatorio?, se me carga un numero la primera vez y no cambia mas luego.

<meta charset="UTF-8">

<input> </input>

<button>Verificar si acertó adivinando</button>

<script>

    var secreto = Math.round(Math.random()*10);//Aca redondea el numero generado aleatoriamente

    //el document.queryselector conversa con el html y trae desde el el valor del imput html y lo almacena en una variable javaS llamada en este caso input tambien. Lo mismo con la variable button y el querySelectortraen desde el html el valor de ese input html y lo almacena en variable java llamada button.

    var input = document.querySelector("input");
    input.focus();
    //la anterior linea lleva el prompt que parpadea directamente al campo input para no tener que volver a hacer click en el para poner un nuevo valor de adivinar.

    var button = document.querySelector("button");

    //-----------------------------------------------------
    //aca declaramos el parseint ya que el valor del secreto es numerico y queremo que no lo tome como string. 
    //IMPORTANTE LO QUE SIGUE:
    //tambien ponemos el valor tomado de la variable, por eso el input.value, de poner solo input tomaria el valor document.queryselector("input") y todo ese texto no nos sirve.

    function verificar(){

        if (parseInt(input.value) == secreto) {

             alert("Usted acerto la adivinanza!!");

        } 

        else {

            alert("No acertó el numero era: " + secreto);

        }

    //la linea que sigue, hace que cada vez que se ejecute la funcion al final de ella lleve el valor del imput del usuario a nad, vacio, asi poder meter luego otra nueva entrada sin tener que borra la entrada anterior.

        input.value = "";

    //la siguiente linea lleva el prompt que parpadea directamente al campo input para no tener que volver a hacer click en el para poner un nuevo valor de adivinar.

        input.focus();

    }

    //pusimos verificar sin parentesis ni nada para que solo lo ejecute al hacer click en el boton como dice la variable funcion de abajo. sin esto el programa se ejecuta completo y sin llegar a poner algo el usuario ya da error al ser que imput por defecto viene vacio y vacio es != de 5 que es nuestro valor a adivinar acá.

    button.onclick = verificar;

</script>
3 respuestas
solución!

El programa funciona bien, solo que yo al poner que me muestre luego de errar cual es el numero pensado y hasta tanto no acertar sigue siendo el mismo. Perdon a todos no me di cuenta de eso, al querer mejorar aun mas el programa lo corrompí o lo saque de su eje.

saludos

Hola, lo revisé y se debe a que es un programa de una sola ejecución. Es decir, el programa solo genera el número aleatorio al acceder a ella. Por lo que es necesario recargar la página para volver a generar un número aleatorio. De lo contrario la variable continua en el mismo valor. Espero haber ayudado, saludos.

si gracias. me di cuenta luego de este error. no era porque yo habia escrito mal , sino que el diseño era asi. saludos y éxitos compañero.