Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите доделать простенькую функцию (https://javascript.ru/forum/misc/71650-pomogite-dodelat-prostenkuyu-funkciyu.html)

fr33ki11 03.12.2017 19:45

Помогите доделать простенькую функцию
 
Вообще я только начинаю изучать 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("Зимой и летом одним цветом.", ["ёлка", "елка"]);

void() 03.12.2017 20:06

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

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("Зимой и летом одним цветом.", ["ёлка", "елка"]);

fr33ki11 03.12.2017 20:22

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

void() 03.12.2017 20:37

Да, простая переменная :victory:


Часовой пояс GMT +3, время: 21:18.