Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Mini challenge: Poner un contador de intentos.

¡Hola compañeros!, en la lección se nos pidio como una mini tarea poner un contador de intentos para poner un alto a la partida de no completarla en un número de intentos deseados. Y esta fue mi solución:

Primero, en el "index.html", lo que hice fue añadir una "id" al botón que nos permite ingresar nuestro intento al juego.

Luego, ya en nuestro script cree una variable llamada "intentosMaximos" y la definí como un número (en este caso 5).

Seguido de esto, modifiqué nuestra función "verificarIntento" para que justo al final de la función si un jugador falla, la funcion compara el valor de intentos con el de "intentosMaximos". Si esto ocurre, se bloquea el botón de "intentar" y se muestra un texto informando al jugador que ya no tiene más intentos. Como observación, es importante que esto que describí pase antes de aumentar el número de intentos porque si no, estaremos dando menos intentos al jugador de los que definimos.

let numeroSecreto;
let intentos;
let listaNumerosSorteados=[];
let numeroMaximo=10;
let intentosMaximos=5;


function verificarIntento(){
    let numeroDeUsuario=parseInt(document.getElementById("valorUsuario").value);
    if(numeroDeUsuario===numeroSecreto){
        asignarTextoElemento("p",`Acertó el número secreto en ${intentos} ${(intentos==1)?"intento":"intentos"}!!!`);
        document.querySelector("#reiniciar").removeAttribute("disabled");
    }else{
        if(numeroDeUsuario>numeroSecreto){
            asignarTextoElemento("p","El número secreto es menor");
        }else{
            asignarTextoElemento("p","El número secreto es mayor");
        }
        limpiarCaja();
        if (intentos>=intentosMaximos){
            /*Este código debe ocurrir antes que aumentemos el número de intentos porque si no puede provocar que el número
            real de intentos que tenga el jugador se vea disminuido en 1*/
            asignarTextoElemento("p","Se ha llegado al número máximo de intentos.");
            document.querySelector("#intentar").setAttribute("disabled","true");

        }
        intentos++;
    }
    return;
}

Espero que les sirva, ¡un saludo!

1 respuesta

Con la ayuda de Luri, cree una función que verifica si el usuario ingresa un numero mayor o menor a 10. En ese caso muestre un mensaje por pantalla: 'Error: Ingresa un número del 1 al 10' a la vez que limpia la caja, para permitir el ingreso de otro número.

function verificarIntento () {

let numeroDeUsuario = document.getElementById('valorUsuario').value;//valor input
// Verificar si el valor ingresado es un número entero entre 1 y 10
if (!/^[1-9]$|^10$/.test(numeroDeUsuario)) {
    asignarTextoElemento('p', 'Error: Ingresa un número del 1 al 10');
    limpiarCaja();
    return;
}
numeroDeUsuario = parseInt(numeroDeUsuario);
console.log(intentos);
if(numeroDeUsuario === numeroSecreto) {
    asignarTextoElemento('p', `Acertaste el número es: ${numeroSecreto} en ${intentos} ${(intentos === 1) ? 'vez' : 'veces'}.`);
    limpiarCaja();
    document.getElementById('reiniciar').removeAttribute('disabled');
    document.getElementById('iniciar').disabled = true;
} else {
    if(numeroDeUsuario > numeroSecreto) {
        asignarTextoElemento('p', 'EL número Secreto es menor!!!.');
    } else {
        asignarTextoElemento('p', 'El número Secreto es mayor!!!.');
}
intentos++;
limpiarCaja();


Tambien les recomiendo que cada vez que modifiquen el codigo, presionen la tecla [ Ctrl + s ] de esa forma se guardan los cambios.