#javascript #list #function #if-statement #while-loop
#javascript #Список #функция #if-оператор #цикл while
Вопрос:
Функция, которую я создал для проверки моих ответов:
function responseChecker(question) {
var valid = false;
Цикл while, который я создал, чтобы отклонить ответы, которые я не указал в коде:
while (valid == false) {
var input = prompt(question)
Это делается для преобразования любого ввода от пользователя в нижний регистр. Он всегда показывает сообщение об ошибке; когда я нажимаю «Отмена», он говорит что-то о невозможности преобразовать null в нижний регистр.
input = input.toLowerCase()
try {
if(input < "a" || input > "d" amp;amp; input == "q" )
throw "Type a letter between a and d";
if(input == '') throw 'that is empty, type something'
if(input % 1 == 0) throw 'type a letter'
alert("Thank you")
valid = true;
}
catch(err) {
alert('That is ' err)
}
}
}
Вопросы викторины для игры в списке:
var quizQuestions = ["Where does Simba live? nA) Pride Rock nB) Kenya nC) Great Rift Valley nD) Desert",
"What is the name of Simba's dad? nA) Mable nB) Mufasa nC) Matata nD) Mr Simba ",
"Who was Simba's childhood best friend? nA) Nala nB) Sarabi nC) Shenzi nD) Food",
"What animals are Timoni and Pumba? nA) Rat amp; Cat nB) Wild dog amp; mouse nC) Warthog amp; Meerkat nD) Pig amp; squirrel ",
"Who is Rafiki? nA) Baboon nB) Monkey nC) Master Oogway 2.0 nD) Wise Monk",
"Who killed Sima's dad? nA) Shenzi nB) Scar nC) Hyena's nD) Takaa",
"What type of birds did were going to eat Simba when he passed out in the dessert? nA) Hawks nB) Verdins nC) Vultures nD) Eagles",
"What is the name of the Butler of the king of Pride Rock? nA) Zen nB) Kian nC) Black Butler nD) Zazu",
"What poor animal was almost eaten by Simba's uncle? nA) Rat nB) Bird nC) Zazu nD) Mouse",
"Who said "Asante sana, Squash banana"? nA) Timoni nB) Nala nC) Rafiki nD) Pumba" ]
Я также помещаю ответы в список, как и вопросы:
var answers = ["a", "b", "a", "c", "a", "b", "c", "d", "d", "c"]
Спросите пользователя, сколько вопросов он хочет воспроизвести:
var questionsNum = Number(prompt("How many questions?"))
Основной код, запуск игры
var counter = 0;
var answersCorrect = 0;
var answersWrong = 0;
Цикл While, чтобы я мог разрешить пользователю выйти:
while (questionsNum != counter || userAnswer != "q") {
var userAnswer = responseChecker(quizQuestions[counter])
counter
answers
Оператор If внутри цикла while для предупреждения пользователя, если его ответ правильный или неправильный, и позволяет им отменить ввод q, но это тоже не работает.
if (userAnswer == answers[counter]){
alert("correct")
answersCorrect
} else if (userAnswer != answers[counter]){
alert("wrong")
answersWrong
}else if (userAnswer == "q") {
break;
}
} // end of while loop
alert("out of rounds")
Завершите игровую механику
alert("You answered " counter " questions nYou got " questionsWrong " questions wrong nYou got " questionCorrect " questions Correct nThank you for playing!")
Комментарии:
1. не используйте
==
для сравнения строк, используйтеequals
вместо этого, изменитеuserAnswer == "q"
наuserAnswer.equals("q")
иuserAnswer != "q"
на!userAnswer.equals("q")
. И эта частьinput < "a" || input > "d" amp;amp; input == "q"
.2. Вы не возвращаете значение из
responseChecker
функции, поэтомуuserAnswer
всегдаundefined
. Вы должны вернуть значениеinput
переменной, чтобы вы могли сохранить его в `userAnswer1