Así que estoy usando el conjunto de datos de wordle code.org para recrear un clon de wordle. El problema es que todo el código funciona bien, pero cuando ingresas la respuesta correcta, aparece en rojo (se supone que es verde). Si alguien pudiera echar un vistazo a mi código y ver qué está mal, sería muy apreciado.
//Getting Wordle Answer var answers = getColumn("Wordle", "validWordleAnswer"); var index = (randomNumber(0, answers.length)); console.log(answers[index]); var letters = ["letter1", "letter2", "letter3", "letter4", "letter5"]; //Checking Words onEvent("wordbutton", "click", function( ) { var guess = getProperty("wordInput", "text"); for (var i = 0; i < 5; i++) { if (guess == answers) { setProperty(letters[i], "background-color", "green"); } else { setProperty(letters[i], "background-color", "red"); } setProperty(letters[i], "text", guess[i]); setProperty("wordsUsedOuput", "text", guess[i]); } });Específicamente las líneas 5 y 6, confundidas en cuanto a cuál es el problema.
Esperaría que getColumn asigne una matriz con múltiples resultados a las answers .
Su evento wordbutton de palabra está comparando esa matriz con guess , que es una cadena. Entonces, la línea if (guess == answers) { probablemente sea un error. Quizás quisiste decir, if (guess == answers[index]) { ?
Además, estás coloreando toda la palabra de rojo o verde según la respuesta. Si su intención es verificar una letra a la vez, su código podría verse un poco más como:
let answer=answers[index]; if (guess.charAt(i) == answer.charAt(i)) { ... }