Hola señor, estoy practicando mi javascript vainilla. Estoy tratando de crear un "Juego del ahorcado" cuando se hace clic en las letras correctas de los botones... Tú ganas. Tengo todos estos botones en el selector de consultas (letra A a letra Z).
El problema al usar esta función... the winAlert = visible implements cuando se hace clic en la letra letterS (última letra de "cauteloso").
Entonces, ¿hay alguna manera de que cuando haga clic en todas las letras de precaución en cualquier orden se winAlert.style.visibility = "visible" dentro de la función?
He probado de todo en las últimas horas... buttons.forEach , slice etc. nada funciona.
function youWonCautious() { var buttons = [letterC, letterA, letterT, letterI, letterU, letterI, letterO, letterS] for (var i = 0; i < buttons.length; i++) { var button = buttons[0, 1, 2, 3, 4, 5, 6, 7]; button.onclick = function() { winAlert.style.visibility = "visible" } } }Los botones no mantienen automáticamente ningún estado sobre si se hizo clic en ellos. Puede hacerlo usted mismo utilizando la propiedad de dataset de datos del botón.
Entonces su función puede probar si todos los botones tienen esta propiedad establecida.
O tal vez pueda cambiar sus botones a casillas de verificación y usar la propiedad checked .
function allButtonsClicked(buttons) { return buttons.every(b => b.dataset.chosen == 'true') } function youWonCautious() { var buttons = [letterC, letterA, letterT, letterI, letterU, letterO, letterS]; buttons.forEach(button => { button.dataset.chosen = 'true'; if (allButtonsClicked(buttons)) { winAlert.style.visibility = "visible"; } }); }Puede crear una matriz global en la que registre los alfabetos en los que el usuario hizo clic. verifique los alfabetos en la variable de matriz global y la matriz de respuesta. Si coincide, pasa el mensaje de alerta; de lo contrario, falla el mensaje para el usuario.