Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

[Sugerencia] Adivina el número - mejorado

Adivina el número:

Buenas a todos, compañeros les comparto la mejora que agregue al ejemplo, adivina el número. Te invito a mejorar mi código, puedes lograrlo? :)

<!DOCTYPE html>
<html lang="en">
<head>
    <title>javascript-practica</title>
</head>
<body>
    <script>
        function ingresarNumero(){
            let numero = parseInt(prompt("Ingrese un numero 0-10: "));
            return numero;
        }

        function adivinaNumero(n, numeroAleatorio) {

            if (numeroAleatorio == n) {
                alert("Felicidades! " + n + " era el numero lanzado: " + numeroAleatorio);
            } else {
                alert(n + " no era numero lanzado, siga intentando :)");
            }
        }

        function intentos() {
            let n = 0;

            let numeroAleatorio = Math.round(Math.random()*10);

            while(n != numeroAleatorio) {

                n = ingresarNumero();
                adivinaNumero(n, numeroAleatorio);
            }
        }

        intentos();
    </script>
</body>
</html>
3 respuestas

tengo entendido que Math.round(Math.random()*10) te puede retornar 0, entonces no se ejecutaría la función intentos() apropiadamente. talvez un let n=-1

Es una posibilidad y también es un error, porque n es aleatorio y puede ocurrir. Entonces, por ejemplo, posible solución es:

let n = 0;
let m = Math.round(Math.random() * 10);
if (m == 0) {
    m = Math.round(Math.random() * 10);
} else {
    // aquí iría el resto del código..
}

Aún no pobre esta solución en el código, pero creo que puede ser un parche eficiente al error cuando m = 0.

Algo asi:

<script>
    const ingresarNumero = () =>{
        return parseInt(prompt("Ingrese un numero 0-10: "));
    };

    const adivinaNumero = (n, numeroAleatorio) => {
        return (numeroAleatorio == n)? alert("Felicidades! " + n + " era el numero lanzado: " + numeroAleatorio): alert(n + " no era numero lanzado, siga intentando ");
    }

    const intentos = () => {
        let n = 0;
        let numeroAleatorio = Math.round(Math.random()*10);
        while(n != numeroAleatorio) {

            adivinaNumero(ingresarNumero(), numeroAleatorio);
        }
    }

    intentos();
</script>