所以我在玩这个游戏的特定部分时遇到了问题。这些是我的初始变量:
var words = ["sugar","banana","hulk"];
var guessLeft = 12;
var wrongGuess = [];
var hiddenWord = [];
var hiddenWordText = document.getElementById("hiddenword-text");
var chosenWord = words[Math.floor(Math.random() * words.length)];
到目前为止,它从我的数组中正确地选择了一个随机单词,并将它们替换为与所选单词长度相同的下划线。这是我的做法:
for (i = 0; i < chosenWord.length; i++) {
hiddenWord.push("_");
hiddenWordText.textContent = hiddenWord.join(" ");
}
现在,我遇到的问题是它何时确定我的猜测是否与字母匹配,以及如何用猜测的字母替换正确的下划线索引。
这是我目前所拥有的,我不确定我是否在正确的轨道上。有没有人有任何提示,或者您能指导我正确的方向吗?
document.onkeyup = function(event) {
var userGuess = event.key;
if (chosenWord.indexOf(userGuess) >= 0){
for (var i = 0; i < wordLength; i++){
if (chosenWord[i] == userGuess){
hiddenWord[i] == userGuess;
hiddenWordText.textContent = hiddenWord[i] + hiddenWord;
}
}
}
else {
guessLeft = guessLeft - 1;
}
}
最佳答案
你的代码有几个错误
使用=
代替==
进行变量赋值
在循环后将 hiddenWordText
的 textContext
替换为 hiddenWord.join("")
,其中已显示正确猜测的单词。以前,您会在每次循环迭代时不断替换 textContext
,这将忽略在先前迭代中找到的匹配项
if (chosenWord.indexOf(userGuess) >= 0){
for (var i = 0; i < chosenWord.length; i++){
if (chosenWord[i] == userGuess){
hiddenWord[i] = userGuess;
}
}
hiddenWordText.textContent = hiddenWord.join(" ");
}
关于Javascript 刽子手 : trouble with replacing blanks with correct letters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53623990/