Javascript减值和退出循环的问题

Javascript减值和退出循环的问题,javascript,html,Javascript,Html,我正在制作的这个刽子手游戏有问题。我添加了一些基本功能,如果您猜不到正确的字母,那么guessNumber变量将减少1。我当前代码的问题是,当玩家猜到错误的字母时,它会完全退出while循环。我是在构建while循环还是在定位猜数--?我已经修改了这个代码大约一个小时了,但仍然无法解决这个问题 <!DOCTYPE html> <html> <head> <title>Hangman</title> </head> &

我正在制作的这个刽子手游戏有问题。我添加了一些基本功能,如果您猜不到正确的字母,那么guessNumber变量将减少1。我当前代码的问题是,当玩家猜到错误的字母时,它会完全退出while循环。我是在构建while循环还是在定位猜数--?我已经修改了这个代码大约一个小时了,但仍然无法解决这个问题

<!DOCTYPE html>
<html>
<head>
    <title>Hangman</title>
</head>
<body>
<h1>Hangman</h1>
<script>
// array of words
var words = [
"trajectory", "symphony", "desire", "antfarm", "dancer", "happiness", "positioning",
"hobbit", "obituary", "cheetah", "sunrise", "antithesis", "wrong", "diamonds",
"partnership", "oblique", "sanctuary"];

// pick a random word

var word = words[Math.floor(Math.random() * words.length)];

// set up the answer array
var answerArray = [];

for (var i = 0; i < word.length; i++) {
    answerArray[i] = "_";
}

var remainingLetters = word.length;

//amount of guesses

var guessNumber = 5;

//the game loop

while (remainingLetters > 0 && guessNumber > 0) {
    //show the player their progress
    alert("Your word is " + answerArray.join(" ") + "and you have " +guessNumber+ " guesses left");

    //get a guess from player
    var guess = prompt("Guess a letter, or click cancel to stop playing.");
    if (guess === null) {
        //exit the loop
        alert("Ok you can quit");
        break;
    } else if (guess.length !== 1) {
        alert("Please enter a single letter.");
    } else
        //update the game state with the guess
        for (var j = 0; j < word.length; j++) {
            if (word[j] === guess) {
                answerArray[j] = guess;
                remainingLetters--;
            }
        } else {
        guessNumber--;
        }
    }
    //end game loop

//alert to congratulate player
alert(answerArray.join(" "));
alert("Good job! The answer was " + word);

</script>
</body>
</html>

刽子手
刽子手
//字串
变量字=[
“轨迹”、“交响乐”、“欲望”、“蚂蚁农场”、“舞者”、“幸福”、“定位”,
“霍比特人”、“讣告”、“猎豹”、“日出”、“对立面”、“错”、“钻石”,
“合伙”、“斜交”、“庇护所”];
//随便挑一个词
var word=words[Math.floor(Math.random()*words.length)];
//设置应答数组
var answerArray=[];
for(变量i=0;i0&&guessNumber>0){
//向玩家展示他们的进度
警告(“您的单词是“+answerArray.join”(““”+”),您还有“+guessNumber+”猜测”);
//从玩家那里猜一猜
var guess=prompt(“猜一个字母,或单击取消停止播放”);
如果(猜测===null){
//退出循环
警报(“确定您可以退出”);
打破
}else if(guess.length!==1){
警告(“请输入一个字母”);
}否则
//用猜测更新游戏状态
for(var j=0;j
每次循环找不到字母时,您都在减少猜数。
guessNumbers--
需要在循环之外,因此每次输入只减少一次猜测数

//单词数组
变量字=[
“轨迹”、“交响乐”、“欲望”、“蚂蚁农场”、“舞者”、“幸福”、“定位”,
“霍比特人”、“讣告”、“猎豹”、“日出”、“对立面”、“错”、“钻石”,
“合伙”、“斜交”、“庇护所”];
//随便挑一个词
var word=words[Math.floor(Math.random()*words.length)];
//设置应答数组
var answerArray=[];
for(变量i=0;i0&&guessNumber>0){
//向玩家展示他们的进度
警告(“您的单词是“+answerArray.join”(““”+”),您还有“+guessNumber+”猜测”);
//从玩家那里猜一猜
var guess=prompt(“猜一个字母,或单击取消停止播放”);
如果(猜测===null){
//退出循环
警报(“确定您可以退出”);
打破
}else if(guess.length!==1){
警告(“请输入一个字母”);
}否则{
//用猜测更新游戏状态
对于(设j=0;j

刽子手
刽子手

每次循环找不到字母时,您都在减少猜数。
guessNumbers--
需要在循环之外,因此每次输入只减少一次猜测数

//单词数组
变量字=[
“轨迹”、“交响乐”、“欲望”、“蚂蚁农场”、“舞者”、“幸福”、“定位”,
“霍比特人”、“讣告”、“猎豹”、“日出”、“对立面”、“错”、“钻石”,
“合伙”、“斜交”、“庇护所”];
//随便挑一个词
var word=words[Math.floor(Math.random()*words.length)];
//设置应答数组
var answerArray=[];
for(变量i=0;i0&&guessNumber>0){
//向玩家展示他们的进度
警告(“您的单词是“+answerArray.join”(““”+”),您还有“+guessNumber+”猜测”);
//从玩家那里猜一猜
var guess=prompt(“猜一个字母,或单击取消停止播放”);
如果(猜测===null){
//退出循环
警报(“确定您可以退出”);
打破
}else if(guess.length!==1){
警告(“请输入一个字母”);
}否则{
//用猜测更新游戏状态
对于(设j=0;j

刽子手
刽子手

您希望得到什么样的结果?你得到了什么结果?你期望得到什么结果?你得到了什么结果?谢谢Jecoms!我运行了它,它正在工作。我想我只是对它需要在循环中正确放置的位置感到困惑。有时看问题太久也没用!谢谢你的帮助@choudlette np:)。有时候,你只是需要在碰壁后有一双新鲜的眼睛来修复一个bug。谢谢Jec