我正在尝试制作“颜色猜测”脚本。
<body onload="do_game()">
<script>
var color=[blue,gold, grey,hotpink, maroon,olive,pink, purple, red,tan,];
var random_color;
var finished = false;
var guess_input_text;
var guess_input;
var random_color = Math.floor(Math.random()*color.length);
var guess;
var target;
do_game(){
while(!finished){
guess_input_text = prompt("I am thinking of one of these colors\n\n"
+color[]\n\n+"What color am I thinking of?\n");
target = color.indexOf(random_color);
guess_input = parseInt(guess_input_text);
}
}
</script>
</body>
它一直给我解析错误。 我放置 parseInt 的原因是我想要用户输入颜色。 有没有其他方法可以让用户输入他们猜测的颜色,直到他们正确(应该与目标相同)?
谢谢,
最佳答案
您的代码中有不少语法错误。
var color = ['blue', 'gold', 'grey', 'hotpink', 'maroon', 'olive', 'pink', 'purple', 'red', 'tan'];
var random_color;
var finished = false;
var guess_input_text;
var guess_input;
var random_color = Math.floor(Math.random() * color.length);
var guess;
var target;
function do_game() {
while (!finished) {
guess_input_text = prompt("I am thinking of one of these colors\n\n" + color + "\n\nWhat color am I thinking of?\n");
target = color.indexOf(random_color);
guess_input = parseInt(guess_input_text);
}
}
我修复了一些问题:
- 颜色应该用引号引起来,因为它们是字符串
- 要打印数组,只需使用变量名称
color
,而不是color[]
(仅在需要时才使用color[x]
访问索引x
处的特定项目,其中x
是整数 \n\n
需要作为字符串的一部分放在引号中- 声明
do_game()
时缺少function
关键字
希望这能让您更接近目标。还有一些与语法无关的其他问题:
finished
永远不会变为true
,因此您的代码将永远运行(换句话说,无限提示)- 我不认为
indexOf
正在执行您希望它执行的操作,因为random_color
是索引,而不是颜色 parseInt
在这里是不必要的,因为您正在比较字符串
详细说明最后一点:您希望用户输入一种颜色,该颜色将是一个字符串。如果您想将输入内容转换为数字,请仅使用 parseInt
。您已经将用户的猜测存储在 guess_input_text
中,因此您只需使用 ===
将其与 target
进行比较即可。
关于JavaScript。从随机数组中选取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34804362/