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

Juego de adivinación

Buenas tardes!, me está dando como resultado siempre que escribo cualquier número: "El número pensado por el programa era mayor al número escrito por usted".. No se como solucionarlo.

<!DOCTYPE html>
<meta charset="UTF-8">

<h1>Juego De Adivinación</h1>

<script>

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

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

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

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

    if (numeroPensado == numeroLanzado){
        imprimir("usted acertó")
    } else if (numeroLanzado > numeroPensado) {
        imprimir("El número pensado por el programa era menor al número escrito por usted")
    } else { 
        imprimir("El número pensado por el programa era mayor al número escrito por usted")
    }



</script>
4 respuestas

Hola Agustín, espero que esté bien.

Si se utiliza la función Math.round(Math.random()*n); en la variable numeroPensado funcionará normalmente pero deberá colocar un número en lugar del n

Otro punto es que la frase "Ingrese un número entre 0-n" este** n** nunca recibirá el valor dado para la función sorteo porque de la manera en que está es una String.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Ya lo corregí, pero me sigue dando el resultado: "El número pensado por el programa era mayor al número escrito por usted". Me parece que hay un error en el condicional. No lo encuentro

<!DOCTYPE html>
<meta charset="UTF-8">

<h1>Juego De Adivinación</h1>

<script>

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

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

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

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

    if (numeroPensado == numeroLanzado){
        imprimir("usted acertó")
    } else if (numeroLanzado > numeroPensado) {
        imprimir("El número pensado por el programa era menor al número escrito por usted")
    } else { 
        imprimir("El número pensado por el programa era mayor al número escrito por usted")
    }



</script>
solución!

Hola Agustín,

Revisando tu código noté 2 cosas:

  1. La función sorteo que generaste recibe el número pero no retorna ningún valor, debe establecer return antes de la instrucción Math.round
  2. El mensaje de la condición está mal, esto debido a que estás preguntando o evaluando en el if "Si el número lanzado es mayor al número pensado", pero estableces un mensaje que indica "El número pensado por el programa era menor al número escrito por usted". Debe ser mayor y en el else, establecer el mensaje que es menor.

A continuación te dejo tu código completo corregido.

<!DOCTYPE html>
<meta charset="UTF-8">

<h1>Juego De Adivinación</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(5)
    var numeroLanzado = parseInt(prompt("Ingrese un número entre 0-" + 5))

    if (numeroPensado == numeroLanzado){
        imprimir("usted acertó")
    } else if (numeroLanzado > numeroPensado) {
        imprimir("El número pensado por el programa era mayor al número escrito por usted")
    } else { 
        imprimir("El número pensado por el programa era menor al número escrito por usted")
    }

</script>

Publiqué también mi solución en el foro donde establezco los números: lanzado e ingresado para verificar el correcto funcionamiento del programa. En caso que te interese.

Saludos

Hola Henry! Probé con el return y me dió! Con respecto a tu segundo punto. Está bien escrita la condición como yo la escribí. Fijate que el número pensado por el programa es numeroPensado, y número escrito es numeroLanzado, por lo que "El número pensado por el programa era menor al número escrito por usted" pasado a código sería tal y como lo escribí: numeroLanzado > numeroPensado Muchas gracias por tu ayuda!