我的hangman猜测功能的表现不应该。当猜测=="猜测值时,它可以做到的,因为它不会减小,但是当猜测在秘密的词中或不在时,它会下降。问题在我的代码的底部,在WordGuess((函数中。如果您可以感谢您,请提供帮助。**
这是我的Codepen代码的链接 https://codepen.io/milkyboii/pen/lypdrp?editors=0011
**
var guessWords = ["school", "test", "quiz", "pencil", "ruler", "protractor", "teacher", "homework", "science", "math", "english", "history", "language", "elective", "bully", "grades", "recess", ]
var secretWord = guessWords[Math.floor(Math.random()*guessWords.length)];
var wrongLetters = []
var correctLetters = []
var repeatLetters = []
var guesses = Math.round((secretWord.length) + (.5*secretWord.length))
function startGame() {
var testWord = document.getElementById("randTest").innerHTML = secretWord;
var correctLettersOUT = "";
document.getElementById("currentGuess").innerHTML = secretBlanks(secretWord)
function secretBlanks(secretWord) {
for (var i = 0; i < secretWord.length; i++) {
correctLettersOUT+=("_ ");
} return correctLettersOUT;
}}
function correctWord() {
var guessLetter = document.getElementById("guessLetter").value;
document.getElementById("letter").innerHTML = guessLetter;
for (var i = 0; i < secretWord.length; i++) {
if (correctLetters.indexOf(guessLetter) === -1)
if (guessLetter === secretWord[i]) {
correctLetters.push(guessLetter);
break;
}
}
if(wrongLetters.indexOf(guessLetter) === -1 && correctLetters.indexOf(guessLetter) === -1) {
wrongLetters.push(guessLetter);
}
/*console.log(correctLetters); **Used to see if the letters were added to the correct array**
console.log(wrongLetters);*/
wordGuess();
}
function wordGuess() {
if(guessLetter.value === ""){
alert("You didn't guess anything.");
}else if(guessLetter === secretWord){
guesses = guesses + 0;
}else {
guesses--;
}
console.log(guesses)
}
尝试对您的Codepen进行修改。我已经修复了它,以便猜测降低到0&amp;通过消息显示游戏。
问题在于此方法中(又称函数(:
function wordGuess() {
if (guessLetter.value === '') {
alert("You didn't guess anything.");
} else if (guesses > 1) {
// Counts down.
guesses--;
console.log('Guesses Left: ' + guesses);
// Resets the input to a blank value.
let guessLetter = document.getElementById('guessLetter');
guessLetter.value = '';
} else {
console.log('game over');
}
/* You don't want to do this, because it's not decrementing the guesses.
for (var i = 0; i < secretWord.length; i++) {
if (guessLetter.value === secretWord[i])
guesses = guesses + 0;
}
*/
}
在脚本的顶部,猜测变量被设置为以下公式:
var guesses = Math.round((secretWord.length) + (.5 * secretWord.length))
这表明您想使用guesses--;
倒数,而不是使用guesses++;
来计数以前的作品:guesses -= 1;
或guesses = guesses - 1;
VICE,反之亦然。
现在,您可以继续从事Hangman游戏!祝你好运!:(
JS Beautifier是一种方便的工具,顺便说一句!