Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.09.2017, 19:00
Новичок на форуме
Отправить личное сообщение для Omnia Посмотреть профиль Найти все сообщения от Omnia
 
Регистрация: 29.09.2017
Сообщений: 6

Помогите с Javascript кодом
Добрый вечер. Написал код игры виселица. Возникли проблемы. Если значение переменной numberAttempt поменять на > 5, то игра начинает работать некорректно. Помогите пожалуйста разобраться с чем это связано. Заранее огромное спасибо.
P.S Если неправильно оформил тему, что-то не написал, тема не отражает сути и т.д. Сообщите пожалуйста, буду признателен.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hangman!</title>
</head>
<body>
<h1>Hangman!</h1>

<script>
var pickWord = function () {
var words = ["программа", "детерминант", "обезьяна" , "кошка", "компьютер", "волна", "портрет", "корабль", "космос", "интернет", "цепочка", "дротик", "человек", "мандарин", "машина", "автобус", "автомобиль", "озарение", "идея", "страх", "ужас", "номер", "комната", "оружие", "балкон", "терраса",  "картина", "светофор", "семафор", "индейка", "курица", "фонарь", "рыба", "фотография", "строка", "огонь", "вода", "сказка", "орудие", "броня", "инновация", "пруд", "речка", "чудовище", "шапка", "нитка", "бочка", "мусор", "останки", "клавиатура", "процессор", "блок", "видеокарта", "наушники", "портфель", "банка", "мозг", "рука", "конфета"];
return words[Math.floor(Math.random() * words.length)];
};

var setupAnswerArray = function (word) {
var answerArray = []
for (var i = 0; i < word.length; i++) {
answerArray[i] = "_";
}

return answerArray;
};

var showPlayerProgress = function (answerArray) {
alert(answerArray.join(" "));
};

var getGuess = function () {
return prompt("Угадайте букву или нажмите Отмена для выхода из игры");
};

var updateGameState = function (guess, word, answerArray) {
var appearances = 0;
for (var j = 0; j < word.length; j++) {
if (word[j] === guess) {
answerArray[j] = guess;
appearances++;
}
}

return appearances;
};

var showAnswerAndCongratulatePlayer = function (answerArray, numberAttempt) {
showPlayerProgress(answerArray);

};

var word = pickWord();
var answerArray = setupAnswerArray(word);
var remainingLetters = word.length;
var numberAttempt = 5;

while (remainingLetters > 0 && numberAttempt > 0) { showPlayerProgress(answerArray); var guess = getGuess();
if (guess === null) {
break;
} else if (guess.length !== 1) {
alert("Пожалуйста, введите только одну букву.");
} else {
numberAttempt--;
guess = guess.toLowerCase();
var correctGuesses = updateGameState(guess, word, answerArray);
remainingLetters -= correctGuesses;
remainingLetters--;
}
}

alert(answerArray.join(" "));

if (numberAttempt > 0) {
alert("Отлично! Было загадано слово " + word);
} else {
alert("Плохо! Вас повесили! Было загадано слово " + word);
}

showAnswerAndCongratulatePlayer(answerArray);
</script>

</body>
</html>

Последний раз редактировалось Omnia, 29.09.2017 в 19:09.
Ответить с цитированием
  #2 (permalink)  
Старый 29.09.2017, 19:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Omnia,

[HTML run]ваш код[/HTML]
Ответить с цитированием
  #3 (permalink)  
Старый 29.09.2017, 19:14
Новичок на форуме
Отправить личное сообщение для Omnia Посмотреть профиль Найти все сообщения от Omnia
 
Регистрация: 29.09.2017
Сообщений: 6

рони,
благодарю.
Ответить с цитированием
  #4 (permalink)  
Старый 29.09.2017, 19:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Omnia,
какие правила, в чём некорректно?
Ответить с цитированием
  #5 (permalink)  
Старый 29.09.2017, 19:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Omnia,
может строка 65 лишняя?
Ответить с цитированием
  #6 (permalink)  
Старый 29.09.2017, 19:29
Новичок на форуме
Отправить личное сообщение для Omnia Посмотреть профиль Найти все сообщения от Omnia
 
Регистрация: 29.09.2017
Сообщений: 6

рони, если выбирать одну и тужу букву определенное кол-во раз (4-6), при значение переменной numberAttempt > 5 (если кол-во попыток будет 6 и больше ), то выдаст, что якобы слово угадано ( хотя это не так).
Ответить с цитированием
  #7 (permalink)  
Старый 29.09.2017, 19:32
Новичок на форуме
Отправить личное сообщение для Omnia Посмотреть профиль Найти все сообщения от Omnia
 
Регистрация: 29.09.2017
Сообщений: 6

рони,
Ого, вроде теперь все работает корректно. Огромное спасибо!
Ответить с цитированием
  #8 (permalink)  
Старый 29.09.2017, 19:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Omnia,
тогда введите проверку -- такая буква уже не входит в слово
Ответить с цитированием
  #9 (permalink)  
Старый 29.09.2017, 19:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от Omnia
Ого, вроде теперь все работает корректно.

Сообщение от рони
введите проверку -- такая буква уже не входит в слово
Ответить с цитированием
  #10 (permalink)  
Старый 29.09.2017, 19:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Omnia,
протестируйте этот вариант
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hangman!</title>
</head>
<body>
<h1>Hangman!</h1>

<script>
var pickWord = function () {
var words = ["программа", "детерминант", "обезьяна" , "кошка", "компьютер", "волна", "портрет", "корабль", "космос", "интернет", "цепочка", "дротик", "человек", "мандарин", "машина", "автобус", "автомобиль", "озарение", "идея", "страх", "ужас", "номер", "комната", "оружие", "балкон", "терраса",  "картина", "светофор", "семафор", "индейка", "курица", "фонарь", "рыба", "фотография", "строка", "огонь", "вода", "сказка", "орудие", "броня", "инновация", "пруд", "речка", "чудовище", "шапка", "нитка", "бочка", "мусор", "останки", "клавиатура", "процессор", "блок", "видеокарта", "наушники", "портфель", "банка", "мозг", "рука", "конфета"];
return words[Math.floor(Math.random() * words.length)];
};

var setupAnswerArray = function (word) {
var answerArray = []
for (var i = 0; i < word.length; i++) {
answerArray[i] = "_";
}

return answerArray;
};

var showPlayerProgress = function (answerArray) {
alert(answerArray.join(" "));
};

var getGuess = function () {
return prompt("Угадайте букву или нажмите Отмена для выхода из игры");
};

var updateGameState = function (guess, word, answerArray) {
var appearances = 0;
for (var j = 0; j < word.length; j++) {
if (word[j] === guess && answerArray[j] !== guess) {
answerArray[j] = guess;
appearances++;
}
}

return appearances;
};

var showAnswerAndCongratulatePlayer = function (answerArray, numberAttempt) {
showPlayerProgress(answerArray);

};

var word = pickWord();
var answerArray = setupAnswerArray(word);
var remainingLetters = word.length;
var numberAttempt = 5;

while (remainingLetters > 0 && numberAttempt > 0) { showPlayerProgress(answerArray); var guess = getGuess();
if (guess === null) {
break;
} else if (guess.length !== 1) {
alert("Пожалуйста, введите только одну букву.");
} else {
guess = guess.toLowerCase();
var correctGuesses = updateGameState(guess, word, answerArray);
remainingLetters -= correctGuesses;
if(!correctGuesses) numberAttempt--;
alert("осталось " +numberAttempt+ " попыток");
}
}

alert(answerArray.join(" "));

if (numberAttempt > 0) {
alert("Отлично! Было загадано слово " + word);
} else {
alert("Плохо! Вас повесили! Было загадано слово " + word);
}

showAnswerAndCongratulatePlayer(answerArray);
</script>

</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста с калькулятором javascript Хабиб1122 Javascript под браузер 6 27.01.2016 11:56
помогите разобраться с кодом Mc'Intosh (X)HTML/CSS 3 25.03.2015 10:20
JavaScript помогите написать программу sasha332 Общие вопросы Javascript 1 04.06.2014 09:19
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
Помогите, пож, младенцу восстановить работоспобность JavaScript MishkaKosolapij Общие вопросы Javascript 4 16.08.2009 23:02