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

[Duda] Código modificado

Hola con todos, quise modificar un poco el código para que de una cantidad de intentos igual a cantidad de elementos que va tener la lista (8 elementos, 8 intentos) la idea es que si se acaba los turnos, solamente va mostrar los que se pudieron adivinar hasta el momento, pero por algún motivo se ya no me deja ingresar un valor más después de adivinar el primer número, ya no me deja seguir adivinando a pesar de tener más intentos. Dejo todo mi código, es la misma del video solo con una pequeña modificación. Gracias de antemano

<meta charset="UTF-8">
<input/>
<button> Verificar si acertó con el secreto</button>
<script>

    function saltarLinea(){

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

    function imprimir(frase){

        document.write(frase);
        saltarLinea();
    }

    function aleatorio(){

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

    }    


    function sortearNumeros(cantidad){
        var secretos = [];
        var contador = 1;

        while(contador <= cantidad){  


            var numeroAletorio = aleatorio();
            console.log(numeroAletorio);
            var encontrado = false; // trigger 

            if (numeroAletorio !=0) {

                for(var posicion = 0; posicion < secretos.length; posicion++){ // este for recorrerá la cantidad del array que tenga en ese momento, puede ir hasta el 4 en este caso debido a la linea 47.

                    if (numeroAletorio == secretos[posicion]) {

                        encontrado = true;
                        break;

                    }

                }

                if (encontrado == false) {

                    secretos.push(numeroAletorio);
                    contador++;

                }                

                }


        }

        return secretos;

    }

    var secretos = sortearNumeros(parseInt(prompt("Ingrese la cantidad de número aleatorios")));

    console.log(secretos);

    var input = document.querySelector("input");// será el comunicador entre código JS y código HTML 

    input.focus();

    function verificar(){

        var encontrado =  false;
        var intentos = secretos.length;
        var contador = 1;

        while( contador <= intentos) {

            for(var posicion = 0; posicion < secretos.length; posicion++){    



                if (parseInt(input.value) == secretos[posicion]) {


                    alert("Usted acertó");
                    alert("Muy bien, número encontrado --> " + input.value + ". Te quedan " + (intentos-1) + " intentos")
                    intentos--;
                    encontrado =  true;        
                    } 

                input.value = "";
                input.focus(); // cursor se focaliza en esa casilla (input)
            }

            if(encontrado == false ){

                alert("Usted erró, le quedan " + (intentos-1) + " intentos.");
                intentos--;
                input.value = "";
                input.focus(); // cursor se focaliza en esa casilla (input)


            }

            if (intentos == 0) {

                imprimir("****Terminó todos sus turnos****")
            }


            input.value = "";
            input.focus(); // cursor se focaliza en esa casilla (input)

        }





    }

    var button =  document.querySelector("button");
    button.onclick = verificar; // sin parentesis para que de todo el código dentro de la función, mas no la respuesta. Es decir para que no lo ejecute.    
</script>

4 respuestas

hola compañero, ya probe el codigo y despues de adivinar el primero sigue sin ningun problema, hasta mas de 8 intentos y nunca para

tienes idea de como puedo hacer para que pare hasta los intentos tengan un límite? y así pueda para el programa.

Compañero soy un tonto, yo estaba probando otro codigo en vez del suyo, le di copiar pegar y pego otro que ya tenia.

dejeme lo leo bien y mañana le escribo compañero, ya lo probe y usted tiene razon

hola conpañero. listo. tratando de resolver esto me surgieron algunas dudas que luego postearé por ahora voy a seguir avanzando en el curso. la unica forma que en contre fue desactivar el boton. lo que hice fue agregarlo al codigo que yo ya tenia.

tenemos *la funcion crear un # aleatorio *la funcion crear una array *preguntamos la cantidad de numeros *la funcion adivinar o verificar que compara el numero que escriben con nuestro array dentro de esta ultima funcion colocamos el contador y colocamos la condicion if que cuando contador sea igual a la cantidad de numeros que escribieron el boton se desactive,

<!DOCTYPE html>
<meta charset=" UTF-8">
<h1>JUEGO ADIVINACION CON ARRAY Y ALEATORIO</h1>

<h6>Escribe un número entre 0 y 10</h6>
<input/>
<button>Adivinar Números</button>

<script>
    var entrada = document.querySelector("input");
    var boton = document.querySelector("button");
    entrada.focus();


    function lanzarAleatorio(){
        return Math.round(Math.random()*10);
    }

    var numeros = [];
    function crearArray(nElementos){
        var i = 1;
        while(i <= nElementos){
            var numeroAleatorio = lanzarAleatorio(); 
            var repetido = false;
            for(var b = 0; b <= numeros.length; b++){
                if(numeros[b] == numeroAleatorio){
                    repetido = true;
                    break;
                }
            }
            if(repetido == false){
                numeros.push(numeroAleatorio);
                i++;
            }
        }
        return numeros;
    } 
    var nElementos = parseInt(prompt("Cuantos numeros aleatorios: "));
    console.log(crearArray(nElementos));

    var contador = 0; 
    function adivinar(){

        var acierto = true;
        for(var posicion = 0; posicion < numeros.length; posicion++){
           if(parseInt(entrada.value) == numeros[posicion]){
            alert("Acertaste" + " intento " + (contador+1));
            acierto = true; 
            contador++;
            break;
           }
           else{
                acierto = false;
           }
        }
        if(acierto == false){
            alert("Erraste, intenta de nuevo" + " intento " + (contador+1));
            contador++;
        }
        entrada.value = "";
        entrada.focus(); 

        if(contador == nElementos){
        boton.disabled=true;
    }
    }


    boton.onclick = adivinar;






</script>