Estoy haciendo una aplicación para adivinar palabras (como Wordle).
Supongamos que tengo una palabra predefinida
let predefinedWord = "apple";
Quiero hacer una función para comparar con la palabra predefinida.
const compare = (word) => { // compare the guess with the predefined word apple } let myGuess = "alley" const result = compare(myGuess); // compare apple with alley // return // ["Matched", "Included", "Included", "Included", "Not Matched"]
¿Cómo puedo hacer que la función sea así?
Si la longitud de la palabra es tan corta como en wordle, un enfoque directo funciona bien:
let predefinedWord = "apple"; let predefArr = predefinedWord.split(''); const compare = (predef,word) => { return word .split('') .map( (letter,i) => { if (predef[i] === letter) return "Matched"; if (predef.includes(letter)) return "Included"; return "Not Matched" }); } let myGuess = "alley" const result = compare(predefArr, myGuess); // compare apple with alley // return // ["Matched", "Included", "Included", "Included", "Not Matched"] console.log(result)
EDITAR: Esto responde a la pregunta original:
let myGuess = "alley" const result = compare(myGuess); // compare apple with alley // return // ["Matched", "Included", "Included", "Included", "Not Matched"]
¿Cómo puedo hacer que la función sea así?
Y no es el comportamiento del juego wordle
const compare = (word) => { let result = []; for(let i=0;i<word.length;i++){ if(predefinedWord.includes(word[i])){ result.push(predefinedWord.indexOf(word[i]) === i?"Matched":"Included") }else{ result.push("Not Matched") } } return result; }
function comparisonhint(secret, guess) { try { const secretArr = secret.split(''); const guessArr = guess.split(''); if (secretArr.length !== guessArr.length) { throw 'Secret and Guess must be same length.' } const hintArr = guessArr.map((letter, i) => { return secretArr[i] == letter ? '✅' : secretArr.includes(letter) ? '🤏' : '❌'; }); return hintArr.join(''); } catch (err) { console.error(err); return err; } } const hint = comparisonhint('words', 'guess'); console.log(hint);