我是一名数字艺术学生,我已经是第一年了,最近我们被赋予了为数学建立一个基本的电子学习网站的任务。基本上你被问到(例如)7次7是什么,你输入答案并点击一个按钮,就会出现一个警告窗口。如果你是正确的,它应该说“正确”或“yay”或“做得好”,如果你错了,它会说“不”或“再试一次”或别的东西。
我的问题是,它应该在窗口警报中显示一条随机消息,而不是一次性或一个接一个地随机消息。我看了,但我找不到任何有用的东西。
以下是我遇到问题的部分代码:
<script type="text/javascript">
var x, y;
var answer;
function aNumber() {
return Math.floor(1 + (Math.random() * 12));
}
function genQuestion() {
x = aNumber();
y = aNumber();
din = document.getElementById("inputVal");
din.value = x + " times " + y;
answer = x * y;
}
function ClickAnswer() {
if (answer == document.getElementById("outputVal").value) {
window.alert("Correct");
window.alert("Yes!");
window.alert("Well done");
location.reload();
} else {
window.alert("No, try again.");
window.alert("try again");
window.alert("wrong");
}
}
function displayArea() {
din = document.getElementById("inputVal");
dout = document.getElementById("outputVal");
dout.value = circleArea(din.value);
}
</script>
答案 0 :(得分:3)
将消息放入数组中并提醒其随机输入。
let successMsg = ['Correct', 'Cool'];
let errorMsg = ['Wrong', 'false'];
alert(successMsg[Math.floor(Math.random() * successMsg.length)]);
&#13;
function ClickAnswer() {
if (answer == document.getElementById("outputVal").value) {
alert(successMsg[Math.floor(Math.random() * successMsg.length)]);
location.reload();
} else {
alert(errorMsg[Math.floor(Math.random() * successMsg.length)]);
}
答案 1 :(得分:0)
问题是你正在同时写下所有信息:
window.alert("Correct");
window.alert("Yes!");
window.alert("Well done");
相反,您可以将消息存储到数组中,选择一个随机数并从该数组中选择一条消息。你可以尝试这样的事情:
var message = ["Correct","Yes!","Well done"];
var a = Math.floor(Math.random() * message.length);
window.alert(message[a]);
&#13;
答案 2 :(得分:0)
您要做的就是使用 Math.random()
,就像您选择数字一样。将每个正确答案分配给一个数组,并将每个错误答案分配给另一个数组。然后你可以用以下方法检索它们:
correct_answers[Math.floor(Math.random()*correct_answers.length)];
imcorrect_answers[Math.floor(Math.random()*incorrect_answers.length)];
我已经创建了一个简化版本的原始代码,展示了这个:
var correct_answers = ["Correct", "Yes!", "Well done"];
var incorrecty_answers = ["No, try again.", "try again", "wrong"];
correct_answers[Math.floor(Math.random()*correct_answers.length)];
function ClickAnswer() {
if (true) {
window.alert(correct_answers[Math.floor(Math.random()*correct_answers.length)]);
} else {
window.alert(incorrect_answers[Math.floor(Math.random()*incorrect_answers.length)]);
}
}
ClickAnswer();
希望这有帮助! :)
答案 3 :(得分:0)
您可以采用的一种方法是存储要在数组中随机化的String值,然后从中随机选择并返回特定的索引。看看here。
在你的情况下可能是
var positiveAnswers= ['Correct!', 'Yes!', 'Well done!'];
var randomAnswer = positiveAnswers[Math.floor(Math.random() * positiveAnswers.length)];
window.alert(randomAswer);