我一辈子都想不通为什么这个网页甚至不会在html中显示标题。 我在这里列出了整个文档。 我是javascript和html的初学者,但我认为我了解函数是如何工作的。 显然我没有。根据 JSLint,第一个"for"循环似乎存在问题。下面是代码:
<!DOCTYPE html>
<html>
<head>
<title>Hangman!</title>
</head>
<body>
<header>
<h1>Hangman!</h1>
</header>
<script>
var words = [
"javascript",
"monkey",
"amazing",
"pancake"
];
var pickWord = function() {
// Return a random word
var word = words[Math.floor(Math.random() * words.length)];
return word;
};
var setupAnswerArray = function(word) {
// Return the answer array
var answerArray = [];
for (var i = 0; i < word.length; i++) {
answerArray[i] = "_";
return answerArray;
};
};
var showPlayerProgress = function (answerArray) {
// Use alert to show the player their progress
alert(answerArray.join(" "));
};
var getGuess = function() {
// Use prompt to get a guess
var guess = prompt("Guess a letter, or click Cancel to stop playing.");
if (guess === null) {
// Exit the game loop
break;
} else if (guess.length !== 1) {
alert("Please enter a single letter.");
};
};
var updateGameState() = function (guess, word, answerArray) {
// Update the answerArray and return a number showing how many times the guess appears in the word
// so remainingLetters can be updated
guess = prompt("Guess a letter, or click Cancel to stop playing.");
for (var j = 0; j < word.length; j++) {
if (word[j] === guess) {
answerArray[j] = guess;
remainingLetters--;
};
};
};
var showAnswerAndCongratulatePlayer = function (answerArray) {
// Use alert to show the answer and congratulate the player
alert(answerArray.join(" "));
alert("Good job! The answer was " + word);
};
var word = pickWord();
var answerArray = setupAnswerArray(word);
var remainingLetters = word.length;
while (remainingLetters > 0) {
showPlayerProgress(answerArray);
var guess = getGuess();
if (guess === null) {
break;
} else if (guess.length !== 1) {
alert("Please enter a single letter.");
} else {
var correctGuess = updateGameState(guess, word, answerArray);
remainingLetters -+ correctGuess;
};
};
showAnswerAndCongratulatePlayer(answerArray);
</script>
</body>
</html>
你的代码中有一些错误。将变量updateGameState() = function (guess, word, answerArray)...
更改为var updateGameState = function (guess, word, answerArray)...
。
将var getGuess = function()
中的break;
更改为return;
,因为没有循环。