Solucionado (ver solución)
Solucionado
(ver solución)
4
respuestas

DUDA: El numero aleatorio no cambia con cada ciclo del While???

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>intentos</title>
</head>
<body>
    <h1>PROGRAMA | JUEGO DE ADIVINACION CON LIMITE DE INTENTOS </h1>

    <script>
        var numPensado = Math.round(Math.random()*15);
        var intentos = 3;
        var numIngresados = " ";
        var i = 1;

        while(i<=intentos){
            var numUser = Number(prompt("Ingrese un numero entre 0 & 15 | numero de intentos: " + i));
            numIngresados += numUser + " | ";

            if (numUser==numPensado) {
                imprimir("Has adivinado el numero!! a tu intento" + i);
                break;
            }else{
                imprimir("Lo siento, no es el numero pensado, te quedan " + (intentos-i) + " intentos");
            }
            i++
        }    
        imprimirDocument("Estos son tus numeros: " + numIngresados + " y este es el numero pensado: " + numPensado);

        function imprimir(frase) {
            alert(frase);
        }
        function imprimirDocument(texto){
            document.write(texto);
        }

    </script>


</body>
</html>
4 respuestas

No, el numero aleatorio solo se obtiene una vez en esta linea segun tu codigo:

var numPensado = Math.round(Math.random()*15);
solución!

Cesar Preza Axume , para que este numero cambie con cada iteracion, osea en cada Ciclo While debes colocarlo dentro del bucle while(condicion){ var numPensado = Math.round(Math.random()*15); proceso.... }

Con esto te aseguras de que sea aleatorio en cada vuelta. Si quieres podes hacer pruebas determinando un numero fijo y usar la funcion imprimir en pantalla. Si colocas: var numPensado = Math.round(Math.random()*15);

fuera del bucle sera un numero aleatorio determinado. Y este sera el unico numero pensado.

<meta charset="UTF-8">

<h1>Programa Juego de azar v.2.0</h1>

<script>
    //Salto de linea
    function breakLine() {

        document.write("<br>");
        document.write("<br>");
        document.write("<br>");

    }
    //Imprime en pantalla
    function println(argument) {

        document.write(argument);
        breakLine();

    }

    var intentos = 3;
    var contador = 1;
    var numeroPensado = Math.round(Math.random()*10);
    var intento=1;

    while(contador<=intentos){

        var numeroLanzador= parseInt(prompt("Ingrese un numero entre 0-10"));

        if (numeroPensado==numeroLanzador){

            println("ACERTASTE en el intento " + intento + " el numero pensado era " +numeroPensado);
            break;

            //Sirve para forzar la salida si es que un tenemos mas intentos, sino el program sigue dentro del loop hasta consumir todos los intentos.
        }
        else {
            alert("FALLASTE");    
        }
        intento++;
        contador++;//Importante dejar a lo ultimo el contador.

    }
    if (numeroPensado!=numeroLanzador) {
        println("El numero pensado era " + numeroPensado+".");
    }


    println("El juego a terminado!!")

</script>

Te comparto mi codigo porque encontre varias inconsistencias con el codigo del profesor probalo cualquier duda avisa. Este codigo ademas te dice la cantidad de intentos que utilizaste para acertar o fallar. Suerte!

Muchas gracias se les agradece estimados.