9
respuestas

Tengo frustración con esto ...

No he podido resolver esto y la verdad me hacen frustrar, no se si solamente me suceda a mi..

<meta charset="utf-8">

<h3> Programa Adivina un número</h3>
<hr>
<h3>
<script>

    function saltarLinea() {

        document.write("<br><br><br><hr>");
        }    

    function linea() {

        document.write("<hr>");

        }

    function imprimir(frase) {

        document.write(frase);
        saltarLinea();

        }        

    function loteria (n) {

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

    }

    var numeropensado= loteria(10);
    var numerolanzado= parseInt(prompt("Ingrese un número entre 0-10"));


    if   (numeropensado == numerolanzado) {

    imprimir("Número correcto, Felicidades!!");

    }    

    else if (numeropensado > numerolanzado ) {

    imprimir(" ERRO Su numero es menor al pensado")

    }

    else if (numeropensado<numerolanzado){


        imprimir(" ERRO Su numero era mayor al pensado")

    }

</script>
9 respuestas

Tranqui David...! La frustración es normal..! a todos nos pasa en menor o mayor medida... Lo importante está en descomponer el problema en pequeños pedacitos para ir viendo que es lo que no funciona. Y lo primero que todo es entender lo que estamos haciendo. Me puedes explicar lo que estas tratando de hacer..? más allá de ver tu código

Muchas gracias Victor de verdad aprecio tu intensión y tu tiempo , el código corre, pero debe tener algún error que nunca da como resultado que acertó, además que si marco 0 me dice que el resultado es aun menor y no se si este bien o no?..

Fíjate en algo: Si yo erro el numero el programa debería seguirme preguntando por el numero. Fíjate que tu código solo pregunta una vez: SI ES IGUAL has esto. SI ES MAYOR has esto. SI ES MENOR has esto. tienes que pensar en la forma de que siga preguntando. te doy una pista: que hacen los ciclos en Javascript..?

Tu programa está bien. Recuerda que la función math.random te va a dar un numero que ni tu mismo como programador sabes cual es. Pero acertar con el numero debes intentar varias veces como la lotería. Es importante que entiendas que lo estas haciendo bien y que el programa no tiene errores, porque está haciendo lo que tu le estas diciendo que haga. El detalle está en que te falta comprender y plasmar como hacer el ciclo de preguntar varias veces para acertar con el numero ramdon

Hacen las cosas una y otra vez ...

Te comparto mi solución:


     <script>

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

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

        function lotería(n) {
            return Math.round(Math.random() * n);

        }
        var numeroPensado = lotería(10);


       var contador = 0;


        while (numeroLanzado!=numeroPensado) {             //mientras que no aciertes el numero sigues preguntando

            var numeroLanzado = parseInt(prompt("Ingrese un num entre 0 y 10."));

            if (numeroLanzado == numeroPensado) {   // si acertaste el numero

                imprimir("NUMERO CORRECTO")

            } else {                      // cuando falles el numero
                alert("FALLASTE..!")

                if (numeroLanzado > numeroPensado) { // dame una pista para orientarme 
                    alert("EL NUMERO PENSADO ES MENOR");
                } else {
                    alert("EL NUMERO PENSADO ES MAYOR");
                }

            }

            contador++;
        }   

    </script>

Hola, tengo una duda, la explicación es bastante buena y detallada pero, cual es la funcionalidad de la variable contador y al final del codigo el contador ++.

Hola Melanie,

En este caso no es necesaria, de hecho podrías prescindir de esa linea. Es la costumbre al crear un bucle while (ya que contador++ te evita crear un bucle infinito)

Comprendo, muchas gracias Victor!