提示不会识别recognize子手游戏中的获胜条件

问题描述 投票:0回答:1

经过反复的尝试,我终于几乎完成了基本的,仅提示的,单独的子手项目,但是遇到了问题。我设置了一个条件,让我有一个变量可以识别单词中有多少正确的“匹配”,如果“匹配”与单词“ YOU WIN!”的长度匹配,应该显示。但是,我似乎无法让程序实际执行此操作。我尝试了多种不同的方法来执行此操作,但是在满足胜利条件后,仍然会出现“猜字母”提示。我的“游戏结束”提示运行正常,这让我感到困惑。

`var secretWords = ["hang", "golf", "many", "barn", "math"];
 var chosenWord = secretWords[Math.floor(Math.random()*secretWords.length)];
 var guesses = 8;
 console.log(chosenWord);
 var letters = chosenWord.length;
 var counter = 0;
 var gameOver = guesses === 0;
 console.log(guesses);
 console.log(counter);


while(guesses !== 0){
const guess = prompt("GUESS A LETTER")
let guessLowerCase = guess.toLowerCase();
let isGuessedLetterInWord = chosenWord.includes(guessLowerCase);
if (isGuessedLetterInWord) {
  alert('nice'); counter ++;

 }  if(isGuessedLetterInWord == 0)  {
alert('wrong'); guesses --;



}
else if (isGuessedLetterInWord == null){
break;
}
}


while(guesses == 0){
 alert('GAME OVER'); break;
 }

counter += chosenWord.length;
while(counter == chosenWord.length){
alert("YOU WIN!!")
}` 
javascript debugging prompt
1个回答
0
投票

您应该将计数器检查放在while (guesses !== 0) {块的末尾-如果在外面,则不会成为游戏循环的一部分。您也不能无条件地增加counter-有些单词具有相同字母的2个以上,例如foo,在这种情况下,您希望猜测o可以同时填满两个o,而不是只有一个。本着子手的精神,提醒填写的信件给用户,以便他们可以看到丢失的内容:

var secretWords = ["hang", "golf", "many", "barn", "math"];
var chosenWord = secretWords[Math.floor(Math.random() * secretWords.length)];
let printedWord = chosenWord.replace(/./g, '-');
var guesses = 8;
console.log(chosenWord);
while (true) {
  const guess = prompt(`Guess a letter, ${guesses} remaining`);
  if (!guess) break;
  const guessLowerCase = guess.toLowerCase();
  let found = false;
  for (let i = 0; i < chosenWord.length; i++) {
    if (chosenWord[i] === guessLowerCase) {
      printedWord = printedWord.slice(0, i) + guessLowerCase + printedWord.slice(i + 1);
      found = true;
    }
  }
  alert(printedWord);
  if (!printedWord.includes('-')) {
    alert('You Win');
    break;
  }
  if (!found) guesses--;
  if (guesses === 0) {
    alert('You Lose');
    break;
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.