Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将背景设置为您选择的颜色_Javascript_Arrays_While Loop_Onload - Fatal编程技术网

Javascript 如何将背景设置为您选择的颜色

Javascript 如何将背景设置为您选择的颜色,javascript,arrays,while-loop,onload,Javascript,Arrays,While Loop,Onload,功能: 用户玩一个游戏,系统将从数组中的列表中随机选择一种颜色。当用户选择正确的颜色时,背景将显示正确的颜色,并显示祝贺消息 已完成的操作: 将while循环设置为对条件进行连续检查,并在check_guess()方法中进行验证检查。已设置myBody=document.getElementsByTagName(“body”)[0]; myBody.style.background=guess\u输入显示系统选择的正确颜色 问题: 我无法显示系统选择的正确颜色。它会一直显示第一个条件警报消息:“

功能:

用户玩一个游戏,系统将从数组中的列表中随机选择一种颜色。当用户选择正确的颜色时,背景将显示正确的颜色,并显示祝贺消息

已完成的操作:

将while循环设置为对条件进行连续检查,并在check_guess()方法中进行验证检查。已设置
myBody=document.getElementsByTagName(“body”)[0];
myBody.style.background=guess\u输入
显示系统选择的正确颜色

问题:

我无法显示系统选择的正确颜色。它会一直显示第一个条件警报消息:“对不起,我无法识别您的颜色。请重试”

其次,即使我设置了正确的颜色或数组中的任何颜色,也会不断收到提示“对不起,我不认识您的颜色。请重试”

我做错了什么?为什么不显示系统选择的颜色


猜颜色游戏
var color=[“蓝色”、“青色”、“灰色”、“绿色”、“洋红”、“橙色”、“红色”、“白色”、“黄色”];
var guess\u input\u text,guess\u input,finished=false,
目标,猜测=0;
函数do_game(){
var rnd=Math.floor((Math.random()*9)+0);
目标=颜色[rnd];
警报(目标);
当(!完成){
guess\u input\u text=prompt(“我想到了这些颜色:”+
“\n\n蓝色、青色、灰色、绿色、洋红、橙色、红色、白色、黄色”+“\n\n我在想什么颜色?”);
猜测输入=parseInt(猜测输入文本);
猜测+=1;
完成=检查猜测();
}
}
函数检查_guess(){
如果(猜测\输入\文本!=颜色){
警告(“对不起,我不认识您的颜色”+“\n请重试”);
返回false;
}else if(猜测\输入\文本==颜色){
如果(猜测输入>目标){
警告(“对不起,您的猜测不正确!”+“\n提示:您的颜色比我的颜色高”+“\n请重试”);
返回false;
}else if(猜测输入<目标){
警告(“对不起,您的猜测不正确!”+“\n提示:您的颜色比我的颜色低”+“\n请重试”);
返回false;
}
}否则{
警告(“祝贺您!您已经猜到了颜色!”+“\n您花了“+猜测+”猜测完成游戏!”+“\n您可以在背景中看到颜色”);
document.body.style.backgroundColor=guess\u输入;
返回true;
}
}

您做错了:

myBody.style.background = guess_input;
我想你忘了写这个:

myBody.style.backgroundColor = guess_input;
哦,当你说:

if (guess_input != color) {
        alert("Sorry, i don't recognise your color" + "\n Please try again");
        return false;
      }

您正在将整数与数组进行比较。您必须将整数与数组的位置进行比较(而不是与该位置的数据进行比较)

首先,如果(guess\u input!=color){行将失败,因为
color
是数组。要检查
guess\u input
是否在
color
数组中,我建议使用

if (color.indexOf(guess_input) < 0) {
可更改为:

guess_input = prompt("I am thinking of these colors:" +
          "\n\n blue, cyan, gray, green, magenta, orange, red, white, yellow" + "\n\n what color am I thinking of?");
其次,您可能需要替换
myBody=document.getElementsByTagName(“body”)[0];
myBody.style.background=guess\u input;
具有
document.body.style.backgroundColor=guess_input;
这里不需要使用
getElementsByTagName

完成的文章看起来像:


猜颜色游戏
var color=[“蓝色”、“青色”、“灰色”、“绿色”、“洋红”、“橙色”、“红色”、“白色”、“黄色”];
var guess\u input\u text,guess\u input,finished=false,
目标,猜测=0;
函数do_game(){
var rnd=Math.floor((Math.random()*9)+0);
目标=颜色[rnd];
警报(目标);
当(!完成){
guess_input=prompt(“我想到了这些颜色:”+
“\n\n蓝色、青色、灰色、绿色、洋红、橙色、红色、白色、黄色”+“\n\n我在想什么颜色?”);
猜测+=1;
完成=检查猜测();
}
}
函数检查_guess(){
if(颜色索引of(猜测输入)<0){
警告(“对不起,我不认识您的颜色”+“\n请重试”);
返回false;
}
如果(猜测输入>目标){
警告(“对不起,您的猜测不正确!”+“\n提示:您的颜色比我的颜色高”+“\n请重试”);
返回false;
}
如果(猜测输入<目标){
警告(“对不起,您的猜测不正确!”+“\n提示:您的颜色比我的颜色低”+“\n请重试”);
返回false;
}
警告(“祝贺您!您已经猜到了颜色!”+“\n您花了“+猜测+”猜测完成游戏!”+“\n您可以在背景中看到颜色”);
document.body.style.backgroundColor=guess\u输入;
返回true;
}

这是否意味着我应该使用“猜测输入”而不是“猜测输入”是的,除非你想写一个数字来表示你想要的位置。我已经尝试了这个建议,但是,即使我把颜色设置正确了,检查仍在循环。你能在这个页面编辑你的代码吗?我想看看你是如何把新的代码放进去的。完成编辑..如果我输入以下行:
if(color.indexOf)(猜测输入)<0)
而不是
if(猜测输入文本!=颜色)
,它仍然有相同的poutcomeit仍然有相同的结果,尽管抱歉,我错过了摆脱
guess\u input\u text
的更改,只使用
guess\u input
,因为您不需要对文本字符串执行parseInt来比较它-请参阅我上面的完整解决方案以澄清解释
guess_input = prompt("I am thinking of these colors:" +
          "\n\n blue, cyan, gray, green, magenta, orange, red, white, yellow" + "\n\n what color am I thinking of?");