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

[Duda] Mi numero secreto siempre es 0

Hola compañeros, si me pueden ayudar por favor, no se que tengo mal en el codigo que el numero secreto siempre es 0, si a 'let numeroSecreto = 0;' lo cambio a 'let numeroSecreto;' en la consola me sale como undefined. Además, los intentos los cuenta desde 0 también, por lo que si intento (ejemplo) 3 veces me dice que fueron 2 intentos. Si ven algún otro detalle, bienvenido sea el comentario, todo me ayuda a mejorar.

let numeroSecreto = 0; let intentos = 0; let maximosIntentos = 3; let listaNumerosSorteados = []; let numeroMaximo = 10;

console.log(numeroSecreto);

let parrafo = document.querySelector('p'); parrafo.innerHTML = Indica un número del 1 al ${numeroMaximo};

function asignarTextoElemento(elemento, texto) { let elementoHTML = document.querySelector(elemento); elementoHTML.innerHTML = texto; return; } function verificarIntento() { let numeroDeUsuario = parseInt(document.getElementById('valorUsuario').value);

if(numeroDeUsuario === numeroSecreto) {

    asignarTextoElemento('p', `Acertaste el número en ${intentos} ${intentos === 1 ? 'vez' : 'veces'}`);
    document.getElementById('reiniciar').removeAttribute('disabled');

} else {

    if(intentos === maximosIntentos) {

        document.querySelector('#reiniciar').removeAttribute('disabled', 'true');
        asignarTextoElemento('p',`Alcanzaste el maximo de ${maximosIntentos} intentos`);
        asignarTextoElemento('h1', 'Gracias por participar de nuestro juego del numero secreto.');

    } else {
        //el usuario no acertó
        if(numeroDeUsuario > numeroSecreto) {

            asignarTextoElemento('p', 'El numero secreto es menor');

        } else {

        asignarTextoElemento('p','El numero secreto es mayor');
    }
    limpiarCaja();
}
intentos++
return;

} }

function limpiarCaja() { document.querySelector('#valorUsuario').value ='';

}

function generarNumeroSecreto() { let numeroGenerado = Math.floor(Math.random()*numeroMaximo) +1;

console.log(numeroGenerado);
console.log(listaNumerosSorteados);
//si ya sorteamos todos los numeros
if (listaNumerosSorteados.length == numeroGenerado) {
    asignarTextoElemento('p', 'Ya se sortearon todos los numeros posibles');
} else {
    //si el numero generado esta incluido en la lista
    if(listaNumerosSorteados.includes(numeroGenerado)) {
        return generarNumeroSecreto();
    } else {
        listaNumerosSorteados.push(numeroGenerado);
        return numeroGenerado;
    }
}

}

function condicionesIniciales() { asignarTextoElemento('h1', 'Juego del número secreto'); asignarTextoElemento('p', Indicame un número del 1 al ${numeroMaximo}); }

function reinciarJuego() { //limpiar caja limpiarCaja(); //indicar mensaje de intervalo de numeros condicionesIniciales(); //generar el numero aleatorio numeroSecreto = generarNumeroSecreto(); //inicializar el numero de intentos intentos = 1; //deshabilitar el boton de nuevo juego document.querySelector('#reiniciar').setAttribute('disabled', 'true');

}

condicionesIniciales();

2 respuestas

Hola!

Viendo tu código observo que olvidaste asignar a la variable numeroSecreto el número aleatorio que generamos con el método generarNumeroSecreto(), por lo cual debes verificar tú método condicionesIniciales() el cual debe estar de la siguiente manera:

function condicionesIniciales() {
    asignarTextoElemento('h1', 'Juego del número secreto'); 
    asignarTextoElemento('p', `Ingresa un número del 1 al ${numeroMaximo}`);
    numeroSecreto = generarNumeroSecreto();// <- Te falta esta instrucción
    intentos = 1;// <- Te falta esta instrucción tambien
}

Espero que con lo anterior, ya puedas generar números secretos aleatorios. Cualquier otro problema puedes compartir nuevamente.

Hola, según vi hay un punto function generarNumeroSecreto() { let numeroGenerado = Math.floor(Math.random()*numeroMaximo) +1; aca la idea es que generes un console log o un alert tomando la funcion desde el principio, asi ves el número generado.