Javascript.RU

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

Помогите доделать простенькую функцию
Вообще я только начинаю изучать js и мне нужно создать простенькую программу, которая будет показывать загадки и я должен буду отвечать на них, если угадываю - то идет +1 очко, если нет, перехожу к следующей. Чтобы тупо не копипастить на каждую загадку код, нужно сделать функцию. Логика функции - проверяет ответ данный пользователем с правильными ответами, если ответ совпал - пишет "правильный ответ" и выходит из функции, а если неверный - то тоже уведомляет и тоже потом выходит. Проблема в том, что если написать например "елка", то оно напишет сперва неверно, а потом верно. Как это исправить? Не хватает своих мозгов) 13 и 14 строка

var score = 0;

	alert("Игра: отгадай загадку.");

	function zagadka(text, rightAnswers) {
		var userAnswer = prompt(text);
		userAnswer = userAnswer.toLowerCase();
		for(var i = 0; i < rightAnswers.length; i++) {
			if(rightAnswers[i] == userAnswer) {
				alert("Вы угадали!");
				score++;
				return;
			} else 
				alert("Вы не угадали. Увы");
		}
	}
	
	zagadka("Зимой и летом одним цветом.", ["ёлка", "елка"]);
Ответить с цитированием
  #2 (permalink)  
Старый 03.12.2017, 20:06
Аватар для void()
Профессор
Отправить личное сообщение для void() Посмотреть профиль Найти все сообщения от void()
 
Регистрация: 11.08.2017
Сообщений: 208

Можно использовать флаг для запоминания.

var score = 0;

		alert("Игра: отгадай загадку.");

		function zagadka(text, rightAnswers) {
			var userAnswer = prompt(text);
			userAnswer = userAnswer.toLowerCase();

			var flag = '';

			for(var i = 0; i < rightAnswers.length; i++) {
				if(rightAnswers[i] == userAnswer) {
					flag = true;
				}
			}

			if(flag == true){
					alert("Вы угадали!");
				}else{
					alert("Вы не угадали. Увы");
					score++;
				}
}
			zagadka("Зимой и летом одним цветом.", ["ёлка", "елка"]);
Ответить с цитированием
  #3 (permalink)  
Старый 03.12.2017, 20:22
Новичок на форуме
Отправить личное сообщение для fr33ki11 Посмотреть профиль Найти все сообщения от fr33ki11
 
Регистрация: 03.12.2017
Сообщений: 2

Не сразу понял что это просто обычная переменная, только я немного по другому сделал, сначала приравнял её нулю, а если первое if верно - писал flag++. Ну вообщем спасибо. Вопрос закрыт.

Последний раз редактировалось fr33ki11, 03.12.2017 в 20:35.
Ответить с цитированием
  #4 (permalink)  
Старый 03.12.2017, 20:37
Аватар для void()
Профессор
Отправить личное сообщение для void() Посмотреть профиль Найти все сообщения от void()
 
Регистрация: 11.08.2017
Сообщений: 208

Да, простая переменная
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с событиями Forgotten Элементы интерфейса 3 03.09.2012 13:29
Помогите доделать калькулятор расчета стоимости. mazaxaka jQuery 2 08.08.2012 16:14
Помогите написать числовую функцию leny Общие вопросы Javascript 69 01.08.2012 15:26
Помогите с javascript andruhin Общие вопросы Javascript 12 04.05.2012 10:05
Помогите доделать. diny Работа 0 06.03.2011 14:44