为了账号安全,请及时绑定邮箱和手机立即绑定

Hangman 游戏相同的字母验证仅 javascript

Hangman 游戏相同的字母验证仅 javascript

Smart猫小萌 2022-12-29 09:35:44
我需要我的帮助,hangman game如果玩家之前猜了重复的字母,我如何阻止生命下降,至于现在如果我运行它并且玩家猜测相同的字母,它会输出他已经做出了这个猜测但生命也在下降. 另外,如果玩家一直输入相同的正确字母,它会输出他已经猜对了,但在输入相同的字母 4-5 次后会说他赢了。第一个错误:lives dropping even if players use letter that is guessed before第二个错误:players input the same correct letter guessed and game will say he won after inputting 4-5 times代码guesses = [];// Show player their progress | .join returned answer as a stringwhile (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")    }    }
查看完整描述

1 回答

?
ibeautiful

TA贡献1993条经验 获得超6个赞

Insideelse用于valid guess将您的整个代码移动else到if (guesses.includes(guess)) {. 它将解决您的两个问题。


// 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")

  }


}


查看完整回答
反对 回复 2022-12-29
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号