Tengo el problema de que al momento de añadir una letra a un array para verificar las letras que son presionadas, no me agrega las letras duplicadas de la palabra. Por ejemplo: "Azul", como no se repite ni una letra, me da bien el array y puedo verificar si el jugador a ganado. El problema es al intentar poner palabras como "Casa" que tienen dos letras idénticas, solo me pasa una de ellas al array. Anexo mi código a ver si alguien me puede ayudar. Gracias de antemano.
let pincel = document.getElementById('canvas-0').getContext('2d');
let btnAgregar = document.querySelector("#btn-agregar-func");
let palabras = ["javascript", "purpura", "casa", "html", "automata", "gundam", "azul"];
let hiddenWord = "";
let correctWord = "";
let letters = [];
let wrongLetter = [];
let errors = 10;
//Selecciona una palabra random del array "palabras".
function secretWord(){
let palabra = palabras[Math.floor(Math.random() * palabras.length)];
hiddenWord = palabra.toUpperCase();
console.log(hiddenWord);
}
//Inicia el estado del juego.
function playGame(){
document.getElementById("btn-iniciar-func").style.display = "none";
secretWord();
drawLines();
document.onkeydown = (e) => {
let letra = e.key.toUpperCase();
if (keyPress(letra) && hiddenWord.includes(letra)){
for (let i = 0; i < hiddenWord.length; i++){
if (hiddenWord[i] === letra){
validLetters(letra);
drawCorrectLetters(i);
win();
}
}
}
else{
console.log(errors);
drawIncorrectLetters(letra, errors);
addWrongLetter()
drawGallow(errors);
lose();
}
}
}
//Revisa si una tecla es presionada.
function keyPress(key){
let estado = false;
if (key >= 65 && letters.indexOf(key) || key <= 90 && letters.indexOf(key)){
console.log(key);
return estado
}
else{
estado = true;
console.log(key);
return estado
}
}
//Añade el error a la variable.
function addWrongLetter() {
errors -= 1
}
//Valida si la letra ya ha sido presionada.
function validLetters(letra) {
let check = true;
if (correctWord.includes(letra) && hiddenWord.includes(letra)) {
check = true;
}
else {
check = false;
correctWord += letra;
console.log(correctWord);
}
}
//Revisa si el jugador ha ganado la partida.
function win() {
if (correctWord.length === hiddenWord.length) {
alert('Has Ganado!')
}
}