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

Juego de adivinación, y consulta

Buenas comparto mi solución al juego de adivinar el numero:

<meta charset="UTF-8">

<h1>JUEGO: ADIVINAR NUMERO SECRETO</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 n = parseInt(prompt("Buenas! Te pido un numero para limitar el rango en el que deberas adivinar. El rango quedaria de 0 hasta el numero elegido: "));

    var numeroPensado = parseInt(prompt("Muy bien. Ahora trata de adivinar el número secreto entre 0 y " + n + ". El número secreto es el: "));

    var numeroSecreto = sortea(n);


    if (numeroPensado == numeroSecreto) {

        imprimir("¡Acertaste! El número secreto era el: " + numeroSecreto);

    } else {

        if (numeroPensado > numeroSecreto) {

        imprimir("¡Perdiste! El número secreto es menor a: " + numeroPensado + ". El numero secreto era el: " + numeroSecreto);

        } else {

            imprimir("¡Perdiste! El número secreto es mayor a: " + numeroPensado + ". El numero secreto era el: " + numeroSecreto);
        }
    }

</script>

Mi duda es como hacer que en el cartel q salta hacer un salto de linea para que que quede mas prolijo. Trate con saltoLinea o incluso con br pero no pude. Por ej: "Buenas! Te pido un numero para limitar el rango en el que deberás adivinar." + saltoLinea + " El rango quedaría de 0 hasta el numero elegido: " pero no me queda bien. Como seria??

Y otra duda , suponiendo q el usuario decide cancelar la pregunta, como se puede hacer para que salte un alert despidiendolo ? .

Gracias!

4 respuestas
solución!

Hola Christián.

Tenés que agregar, en el mismo texto, los siguientes caracteres para un salto de línea: \n

Te dejo el ejemplo:

var n = parseInt(prompt("Buenas! Te pido un numero para limitar el rango en el que deberas adivinar.\nEl rango quedaria de 0 hasta el numero elegido: "));

Por la otra consulta...

La llamada a prompt retorna el texto del campo de entrada. Pero si el usuario hace clic en "cancelar" devuelve --> null

Sabiendo esto, podés utilizar un condicional Para reconocer que el usuario hizo click en "cancelar"

var n = parseInt(prompt("Buenas! Te pido un numero para limitar el rango en el que deberas adivinar.\nEl rango quedaria de 0 hasta el numero elegido: "));

if(n == null){
    alert("Hasta la próxima")
}

Espero haber sido de ayuda. Saludos!

Hola!

Gracias a la consulta de Christian pude encontrar en qué estaba fallando mi código, me pasaba lo mismo. Aprovecho para dejarlo acá por si hay que hacer alguna modificación.

<meta charset="UTF-8">

<h1>DESAFÍO FUNCIÓN DE LOTERÍA </h1>

<script>

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

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

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

    var numero = parseInt(prompt("Ingrese un número máximo para el rango de sorteo."))

    var numeroPensado = Math.round(Math.random()*numero);

    var numeroLanzado = parseInt(prompt("Elija un número dentro del rango elegido."))

    if (numeroPensado == numeroLanzado){
        imprimir("¡¡¡Felicidades!!! Acertaste el número.")
    }

    else {

        if (numeroPensado > numeroLanzado){
        imprimir("El número elegido es " + (numeroPensado - numeroLanzado) +  " mas que el sorteado." + "<br>" + "<br>" + "El número correcto es " + numeroPensado + ".") 
        } 
        else {
            imprimir("El número elegido es " + (numeroLanzado - numeroPensado) +  " menos que el sorteado." + "<br>" + "<br>" + "El número correcto es " + numeroPensado + ".")

        }
    }

</script>

¡Saludos!

Mil gracias Gonzalo, nuevamente aprendo de vos!. Cuando cancelaba, me devolvia en vez de null , NaN. Voy a probar haciendo esto qe como me comentas poniendo NaN haber q consigo, sino pruebo con null. Y gracias x el \n , ahora voy a poder acomodar mejor el texto del mensaje. Abrazo y gracias!!!

De nada Christian. Un gusto por ayudar. Un abrazo!