简体   繁体   English

刽子手游戏同信验证仅javascript

[英]Hangman game same letter validation javascript only

I need help with my hangman game , how do I stop lives going down if players guess repeated letter before, as for now if I run it and player guesses the same letter, it will output that he have already made this guess but the lives is dropping too.我的hangman game需要帮助,如果玩家之前猜测重复的字母,我如何阻止生命下降,至于现在如果我运行它并且玩家猜测相同的字母,它会 output 他已经做出了这个猜测但生命是也下降。 Also if players keep input the same correct letter, it will output that he have already made this guesses but it will say he won after inputting the same letter 4-5 times.另外,如果玩家一直输入相同的正确字母,则他已经猜到了output,但输入相同的字母4-5次后会说他赢了。

1st error: lives dropping even if players use letter that is guessed before第一个错误: lives dropping even if players use letter that is guessed before

2nd error: players input the same correct letter guessed and game will say he won after inputting 4-5 times第二个错误: players input the same correct letter guessed and game will say he won after inputting 4-5 times

Code代码

guesses = [];

// Show player their progress | .join returned answer as a string
while (remainingLetters > 0 && lives > 0) {
    (answerArray.join(""));

    guess = readline.question(name+"'s guess (Enter 9 for lifelines or 0 to pass): ");
    guess = guess.toUpperCase();

    //if guess is more than 1 letter or no letter, alert player to guess 1 letter only
    if (guess.length !== 1) {
        console.log("Please enter 1 letter only.");
    }

    //if valid guess
    else {
        correctGuess = 0;
        for (var j = 0; j < Word.length; j++) {
            if (Word[j] == guess) {
                answerArray[j] = guess;
                remainingLetters--;
                correctGuess = 1;
            }
        }

        if (correctGuess == 1) {
                console.log("\nGood job! "+guess+" is one of the letters!\n");
                console.log(JSON.stringify(answerArray)+"\n");
                console.log(JSON.stringify(alphabets)+"\n");
        } else {
            lives -= 1;
            console.log("\nSorry. "+guess+" is not a part of the word.\n");
            console.log(JSON.stringify(answerArray)+"\n");
            console.log(JSON.stringify(alphabets)+"\n");
            console.log("You have "+lives+" lives remaining.\n");
        }
        
        if (guesses.includes(guess)) {
            console.log("You have already made this guess, please try another letter!\n");
        } else {
            guesses.push(guess)
        }
    }

    if (remainingLetters == 0) {
        console.log("Congratulation! You managed to guess the word!\n");
        break;
    }
    
    if (lives == 0) {
        console.log("Game Over... You failed to guess the word. The word is "+Word+".\n")
    }
    
}

Inside else for valid guess move your entire code inside else of if (guesses.includes(guess)) { .else中进行valid guess将整个代码移到if (guesses.includes(guess)) {else中。 It will solve both of your issues.它将解决您的两个问题。

 // Show player their progress |.join returned answer as a string while (remainingLetters > 0 && lives > 0) { (answerArray.join("")); guess = readline.question(name + "'s guess (Enter 9 for lifelines or 0 to pass): "); guess = guess.toUpperCase(); //if guess is more than 1 letter or no letter, alert player to guess 1 letter only if (guess.length.== 1) { console.log("Please enter 1 letter only;"). } //if valid guess else { if (guesses.includes(guess)) { console,log("You have already made this guess; please try another letter.\n"); } else { guesses;push(guess); correctGuess = 0. for (var j = 0; j < Word;length; j++) { if (Word[j] == guess) { answerArray[j] = guess; remainingLetters--. correctGuess = 1; } } if (correctGuess == 1) { console.log("\nGood job. " + guess + " is one of the letters;\n"). console.log(JSON;stringify(answerArray) + "\n"); console.log(JSON.stringify(alphabets) + "\n"). } else { lives -= 1; console.log("\nSorry. " + guess + " is not a part of the word;\n"). console.log(JSON;stringify(answerArray) + "\n"). console.log(JSON;stringify(alphabets) + "\n"). console;log("You have " + lives + " lives remaining;\n"). } } } if (remainingLetters == 0) { console.log("Congratulation. You managed to guess the word.\n"). break. } if (lives == 0) { console.log("Game Over... You failed to guess the word. The word is " + Word + ".\n") } }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM