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

Duda en juego adivinación

El desafío dice: * Crea una función de lotería que reciba un número n y sortee un número entre 0 a n, retornando ese valor. De esta forma, en vez de escribir var numeroPensado = Math.round(Math.random()n);, escribirás var numeroPensado = sortea(n);. Realiza esa modificación, creando una nueva función y utilízala de forma correcta.

mi código:

<meta charset="UTF-8">

<h1>PROGRAMA JUEGO DE ADIVINACION </h1>

<script>

    function saltarLinea() {
        document.write("<br>");    
        document.write("<br>");    
        document.write("<br>");    
    }  

    function imprimir(frase) {
        document.write(frase);
        saltarLinea();
    }

    function sortea(n) {

        return Math.round(Math.random()*n);

    }


    var numeroPensado = sortea(n);
    var numeroLanzado = parseInt(prompt("Ingrese un número entre 0 y n"));

    if (numeroPensado == numeroLanzado){
        imprimir("usted acertó")
    }

    else {
        imprimir("usted erró, el número pensado era " + numeroPensado)    
    }

</script>

¿Por que arroja el error?

6 respuestas

Te falta declarar la variable n. Primero debes pedir que se ingrese un valor y guardarlo en la variable 'n'

var n = parseInt(prompt("Ingrese el valor de n: "));
var numeroPensado = sortea(n);
var numeroLanzado = parseInt(prompt("Ingrese un número entre 0 y " + n));

Quedaría algo así.

Gracias por responder, entonces se le debe solicitar al usuario que ingrese 2 valores? En este caso primero el que define la variable "n" y después el numero lanzado?

Efectivamente, estimado.

Viendo la resolución del instructor me genera otra duda, si te fijas en la resolución, en el código declaran:

var numeroPensado = sorteo(10);

Pero si solicitan que el numero vaya de "0 a n" y están declarando de antemano "sorteo(10)" están limitando a que los resultados solo den por menor a 10.

Este es el código de la resolución.

<meta charset="UTF-8">

<h1>PROGRAMA JUEGO DE ADIVINACION </h1>

<script>

    function saltarLinea() {
        document.write("<br>");    
        document.write("<br>");    
        document.write("<br>");    
    }  

    function imprimir(frase) {
        document.write(frase);
        saltarLinea();
    } 

    function sorteo(n) { 
            return Math.round(Math.random()*n);
        }   

    var numeroPensado = sorteo(10);
    var numeroLanzado = parseInt(prompt("Ingrese un número entre 0-10"))

    if (numeroPensado == numeroLanzado){
        imprimir("usted acertó");
    }
    else {
        imprimir("usted erró, el número pensado era " + numeroPensado);    
    }

</script>

Esa sería una manera de realizar el ejercicio de forma más directa. Internamente tu decides el valor de n.

Si te fijas la función sortea(n) recibe un número.

function sortea(n) {
    return Math.round(Math.random() * n);
}

Asi que cuando tu llamas a la función solo debes pasarle un número.

//Primer caso
var numeroPensado = sortea(n);
//Segundo caso
var numeroPensado = sortea(10);

En el primer caso la variable 'n' debe estar declarada previamente y tener un valor numérico para evitar errores.

Que gran trabajo chicos solo apoyándose es la única manera en la que se construye conocimiento a partir de el conocimiento que imparte el instructor... aplausos!