排除单词猜测游戏中的js错误

时间:2018-06-09 05:07:01

标签: javascript

编程和尝试完成单词猜测游戏的新手。我在for循环中遇到错误,其中jslint告诉我问题是“使用严格”。我在控制台上收到一条未定义的错误消息。即使经过广泛的谷歌搜索,也无法理解为什么。

下面是我的js和底部的相应html。任何帮助将非常感谢!

var randomWordArr = ['Tyrannosaurus', 'Stegosaurus', 'Velociraptor'];

//choose random word from the dino array
var randomWord = randomWordArr[Math.floor(Math.random() * randomWordArr.length)];

var s;
var count = 0;

var answerArray = [];


function startGame() {
  // Set up the answer array
  for (var i = 0; i < randomWord.length; i++) {
    answerArray[i] = "_";
  }

  s = answerArray.join(" ");
  document.getElementById("answer").innerHTML = s;
}

function Letter() {
  //get the letter typed in the box
  var letter = document.getElementById("letter").value;

  //make sure we have a guess(can add more checks liek only letters, etc)
  if (letter.length > 0) {
    for (var i = 0; i < randomWord.length; i++) {
      if (randomWord[i] === letter) {
        //assign it to letter
        answerArray[i] = letter;
      }
    }

    count++;
    document.getElementbyId("counter").innerHTML = "No. of clicks " + count;
    document.getElementbyId("answer").innerHTML = answerArray.join(" ");
  }
}

onload = "startGame()";
<form id="hangmanForm">
<input id="letter" type="text">
<input type="button" value="letter" onClick="Letter()" />
     <p id="answer"></p>
     <p id="counter"></p>
     <p id="stat"></p>
</form>

1 个答案:

答案 0 :(得分:-1)

您在javascript中使用了getElementbyId()。这应该是getElementById(),也就是说, By 应该有一个大写的 B

因此,代码应为:

document.getElementById("counter").innerHTML = "No. of clicks " + count;
document.getElementById("answer").innerHTML = answerArray.join(" ");

要允许代码运行,您需要使用以下代码行调用java脚本末尾附近的StartGame函数:

startGame();

您可以找到代码here的工作版本。

可以在游戏本身方面进行的进一步改进是,可以在每次输入后清除字母文本框,以便为下一次输入做好准备。这可以按如下方式完成:

document.getElementById("letter").value = "";

我已将此添加到上面链接中提供的解决方案中。