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

[Duda] Duda de listas y recursividad.

A alguien le ha pasado que cuando agregó la recusrividad desaparecieron los textos del juego del curso loguca de programación: explorar funciones y listas:
Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Este es mi código en JS:

let numeroSecreto = generarNumeroSecreto();
let intentos = 0;
let listaNumeroSorteado = [];

function asignarTextoElemento(elemento, texto) {
let elementoHTML = document.querySelector(elemento);
elementoHTML.innerHTML = texto;
return;
}

function verificarIntento() {
let numeroUsuario = parseInt(document.getElementById('valorUsuario').value);

console.log(numeroSecreto);
if (numeroUsuario === numeroSecreto) {
    asignarTextoElemento('p', `Acertaste el número en ${intentos} ${intentos === 1 ? 'vez' : 'veces'}`);
    document.getElementById('reiniciar').removeAttribute('disabled');
    //El usuario no acerto.
} else if (numeroUsuario > numeroSecreto) {
    asignarTextoElemento('p', 'El número es menor');
} else {
    asignarTextoElemento('p', 'El número es mayor');
}
intentos++;
limpiarCaja();

return;

}

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

}

function condicionesIniciales() {
asignarTextoElemento('h1', 'Juego del número secreto');
asignarTextoElemento('p', 'Indica un número del 1 al 10');
numeroSecreto = generarNumeroSecreto();
intentos = 1;
}

function reiniciarJuego() {
//limpiar la limpiarCaja
limpiarCaja();
//Indicar mensaje de intervalo de números
//Generar el número aleatorio
//Reiniciar el contador de intentos
condicionesIniciales();
//Deshabilitar el botón de reinicio
document.querySelector('#reiniciar').setAttribute('disabled', true);

}
function generarNumeroSecreto() {
let numeroGenerado = Math.floor(Math.random() * 10)+1;
//Sí el número generado está en la lista
if (listaNumeroSorteado.includes(numeroGenerado)){
return generarNumeroSecreto();
} else {
listaNumeroSorteado.push(numeroGenerado);
return numeroGenerado
}
}

condicionesIniciales();

y este es el código de HTML:

<div class="container">
    <div class="container__contenido">
        <div class="container__informaciones">
            <div class="container__texto">
                <h1></h1>
                <p class="texto__parrafo"></p>
            </div>
            <input type="number" id="valorUsuario" min="1" max="10" class="container__input">
            <div class="chute container__botones">
                <button onclick="verificarIntento();" class="container__boton">Intentar</button>
                <button onclick="reiniciarJuego()" class="container__boton" id="reiniciar" disabled>Nuevo juego</button>
            </div>
        </div>
        <img src="./img/ia.png" alt="Una persona mirando a la izquierda" class="container__imagen-persona" />
    </div>
</div>




<script src="app.js" defer></script>

No entiendo que está pasando, no encuentro que hice mal. Según yo lo tengo como los maestros.

1 respuesta

Encontré mi error, estaba en la primer declaración: let numeroSecreto = generarNumeroSecreto();
debía ser; let numeroSecreto = 0;