【发布时间】:2020-06-30 22:11:18
【问题描述】:
我正在使用 Javascript、HTML 和 CSS 制作记忆游戏。
以下是游戏的简要说明:
- 程序生成一个随机数,显示在 屏幕。
- 大约 5 秒后,数字消失,屏幕上出现一个弹出框,要求用户输入他或她刚刚看到的数字。
- 如果该数字与之前屏幕上的数字匹配,则会出现一个带有“正确”字样的警告框。如果没有,则会出现一个带有“Nope. Nice try”文本的警告框。
这是我的问题: 即使我输入了正确的数字,警告框也会显示“不。不错的尝试”。
这是我迄今为止编写的代码: (请记住,我还没有实现任何 setInterval/setTimeout 函数。为方便起见,我制作了“隐藏”函数手册。)
JS:
/* game level = easy
numbers from 1-9000 are generated */
function random(a){
a = Math.floor(Math.random() * (9000 - 1) + 1);
document.getElementById("screen").innerText = a;
}
function getInput(a){
var input = window.prompt("Enter the number you just saw:");
if(input === a){
alert("Correct!");
}
else{
alert("Nope. Nice try.");
}
}
/* hide toggle */
function hide() {
var x = document.getElementById("screen");
if (x.style.display === "none") {
x.style.display = "none";
} else {
x.style.display = "none";
}
}
我的问题:使用 1-9000 的数字数组是否理想?
有了一个数组,我想我可以做这样的事情:
for(var i = 0; i < arr.length; i++){
if(//){
}
else{
}
}
感谢您的阅读。
【问题讨论】:
-
你可以使用一个数组,但是这里真的没有效率。
===检查完全相等(即检查值和类型)。但在这里,您将数字 (a) 与字符串 (input) 进行比较。将您的输入转换为数字:if (parseInt(input, 10) === a)(这里的10是为了确保您的数字以 10 为基数处理) -
@blex 你为什么不提供这个作为答案? :)
-
@F.Müller 因为我确定这是一个重复的问题,但我懒得去搜索它;)
标签: javascript java html arrays