Как проверить, используется ли одна и та же буква более одного раза в слове (проект Hangman, javascript) - PullRequest
0 голосов
/ 10 марта 2020

Я почти закончил javascript logi c для моего личного проекта палача, который я создаю. Одна из последних проблем, с которыми я сталкиваюсь - заставить программу распознавать, используется ли та же самая буква в «выбранном слове». Например, когда в качестве «выбранного слова» выбрано «ниндзя», а пользователь выбирает «n», я бы хотел, чтобы моя переменная-счетчик распознала, что есть два «n», и добавила 2 к счету вместо одного.

Мой код пока:

var secretWords = ["batman", "Donkey kong", "ninja", 
"programming"];
 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")
var guessLowerCase = guess.toLowerCase();
var isGuessedLetterInWord = 
chosenWord.includes(guessLowerCase);
if (isGuessedLetterInWord) {
alert('nice'); counter ++;

 } else {
alert('wrong'); guesses --;

}
}

if(counter === chosenWord.length){
 alert("You Win!!");
}

if (guesses === 0){
alert("LOSER!");
}

1 Ответ

0 голосов
/ 10 марта 2020

Простым хаком было бы разделить строку на буквы и считать.

let occurances = chosenWord.split(guessLowerCase).length - 1

Или вы можете использовать регулярное выражение для поиска всех вхождений:

let occurances = [...chosenWord.matchAll(new RegExp(guessLowerCase, 'g'))].length
...