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

Duda sobre el sorteo

Estuve intentando realizar un comando de números aleatorios para el juego de loteria, pero llevo un buen rato intentando diferentes formas y no me da el resultado. les agradezco su ayuda, y cómo hago para cuando tenga un problema de estos o parecidos.

<meta charset="UTF-8">
<h1>Sea bienvenido</h1>
<br>
<h1>La loteria</h1>
<script>
  function saltarlinea (){
document.write("<br>");
document.write("<br>");
     }
   function imprimir(frase) {
document.write(frase);
saltarlinea();
     }
     function sorteo( ) {
document.write( );
saltarlinea();
     }
var numeroPensado = (Math.random(sorteo(n)));
var numeroLanzado = parseInt (prompt ("Ingrese un número"));
var sorteo=n
    if (numeroPensado == numeroLanzado){
    imprimir ("Usted acertó!!");
                                }
    else {
    imprimir ("Usted erró, suerte la proxima: " + numeroPensado );
                           }
</script>
4 respuestas
solución!

Hola Nneka,

Probé tu código y ví que la función sorteo () no se habían cerrado sus llaves "{ }". Otro punto que encontré fue el generador de número aleatorios (Math.random()), esa función genera números en un rango entre 0 y menor a 1 es por ello que lo multiplico por 10 para que me brinde números entre 0 y 10.

He modificado tu código, espero sea de ayuda.

<meta charset="UTF-8">
<h1>Sea bienvenido</h1>
<br>
<h1>La loteria</h1>
<script>
function saltarlinea () {
    document.write("<br>");
    document.write("<br>");
}

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

// Creo una función sorteo
function sorteo() {

    // Genero un número aleatorio del 1 al 10, lo redondeo y lo almaceno en una variable
    var numeroPensado = Math.round(Math.random()*10);

    // Solicito un número al usuario y lo almaceno en otra variable
    var numeroLanzado = parseInt (prompt ("Ingrese un número"));

        // Creo una función IF en la que si el número pensado es igual al número lanzado, me imprima un mensaje "Usted acertó"
        if (numeroPensado == numeroLanzado){
        imprimir ("Usted acertó!!");
        }

        // Caso contrarion, imprimo un mensaje en la que indique que el usuario erró y muestro el número pensado
        else {
        imprimir ("Usted erró, suerte la proxima: " + numeroPensado );
        }
}

// Aquí llamo a la función sorteo para que ejecute todo el código de su bloque
sorteo();

</script>

Saludos,

Puedes usar este codigo, entenderlo y aplicarlo a lo que estas haciendo

/*
Creas una funcion que te devolverá un numero aleatorio entre 0 y10, "n" es el parametro que
recibe la funcion, el cual toma el valor de 10 gracias a la linea de codigo "let numeroPensado = sorteo(10);"
 */
function sorteo(n) {
      return Math.round(Math.random() * n);
    }
    let numeroPensado = sorteo(10);
    /*
    Creas un bucle while para que la acción se repita 3 veces en caso no se logre adivinar y con la sentencia
    break, rompes el bucle cuando aciertas
    */
    let intentos = 3;
    let contador = 1;
    while (contador <= intentos) {
      let numeroLanzado = parseInt(prompt("Ingrese un numero entre 0-10"));
      if (numeroPensado === numeroLanzado) {
        alert("Acertaste, el numero a adivinar era " + numeroPensado);
        break;
      } else {
        alert("Fallaste");
      }

      if (contador === 3) {
        alert(
          "Llegaste a los 3 intentos, el numero a adivinar era " + numeroPensado
        );
      }

      contador++;
    }

¡Hola, saludos! La respuesta de Alumno es acertada, para la próxima solo debes leer bien tus funciones y variables para que comprendas que parámetros estas pasando a través de ellas, te muestro un ejemplo de como yo e solucionado tu código:

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

var numeroPensado = Math.floor(Math.random() * 10);
var numeroLanzado = prompt("Ingrese un número");

if (!numeroLanzado) {
    imprimir("Por favor ingresa un numero");
}else {
    if (numeroPensado == numeroLanzado){
        imprimir ("Usted acertó!!");
    }else {
        imprimir ("Usted erró, suerte la proxima: " + numeroPensado );
    }
}

probé tu código y lo que te falto declarar fue la n en función sorteo y lo que los demás te comentan también en el math.random te falto multiplicar x 10 ya que si no lo haces estas en el valor 0 a 1 y el math.round redondea ese valo pero como solo es 0 y 1 no tienes mucho que hacer prueba este código también