получение подсказки для распознавания букв в javascript играх в палач "выбранное слово" - PullRequest
0 голосов
/ 25 февраля 2020

, поэтому я пытаюсь научить себя javascript и решил попробовать сделать основную игру c палач, так как это кажется популярным интервью / тестовым вопросом. Я планирую использовать Math.random, чтобы выбрать выбранное слово из пула слов, а затем использовать функцию подсказки, чтобы найти буквы слова. К сожалению, я не смог выяснить, как получить приглашение распознать мой ввод. Любая помощь будет оценена.

var secretWords = ["batman", "Donkey kong", "ninja", "programming"];
var chosenWord = secretWords[Math.floor(Math.random() * secretWords.length)];
var guesses = 8;
var letters = chosenWord.length
var guess = prompt("GUESS A LETTER");


alert(chosenWord);

for (var i = 0; i <= letters; i++) {
  letters[i] = chosenWord.substring(i, i++)
}
if (guess = i) {
  alert("nice")
} else {
  alert("Wrong");
}

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

В данный момент вы переходите от 0 к длине выбранного слова. Я предполагаю, что вы пытаетесь проверить, находится ли данная буква в выбранном слове, но логика c, к сожалению, отключена.

Чтобы проверить, содержит ли строка букву или часть слова, Вы можете использовать метод String.includes(). У каждой строки есть этот метод, и с его помощью вы можете проверить, включена ли данная строка в вашу строку, и сравнить ее с ней. Затем он вернет true или false в зависимости от того, включена строка или нет. Например:

var example = 'hello';
example.includes('h'); // true
example.includes('i'); // false

JavaScript чувствительно к регистру. Таким образом, чтобы ваша игра работала и вводил пользователя неоднозначно в отношении прописных или строчных букв, убедитесь, что все ваши secretWords написаны либо строчными, либо прописными буквами, в зависимости от вашего выбора. Затем, когда пользователь вводит данные, снова измените ввод на прописные или строчные, используя методы String.toUpperCase() и String.toLowerCase().

var secretWords = ["batman", "donkey kong", "ninja", "programming"];
var chosenWord = secretWords[Math.floor(Math.random()*secretWords.length)];
var guesses = 8;
var letters = chosenWord.length

alert(chosenWord);

var guess = prompt("GUESS A LETTER");
var guessLowerCase = guess.toLowerCase();
var isGuessedLetterInWord = chosenWord.includes(guessLowerCase);

if (isGuessedLetterInWord) {
  alert('nice');
} else {
  alert('wrong');
}
0 голосов
/ 25 февраля 2020

i - ваша переменная l oop. Он всегда будет равен значению букв, когда l oop закончит цикл. Это не то, с чем вы хотите сравнить. Вместо этого сравнивайте буквы l oop.

var secretWords = ["batman", "Donkey kong", "ninja", "programming"];
var chosenWord = secretWords[Math.floor(Math.random()*secretWords.length)];
var guesses = 8;
var letters = chosenWord.length
var guess = prompt("GUESS A LETTER");    

var found = false;
for (var i = 0; i < letters; i++){
    if (guess == chosenWord.substring(i, i + 1))
        found = true;
}
if (found) {
    alert("Nice")
}
else {
    alert("Wrong");
}
...