2016-09-26 105 views
0
<html> 
    <head> 
    <script> 
var play; 
var target; 
var count = 0; 
var guess; 
var colors = ["blue ", "coral ", "orchid ", "red ", "cyan ", "dark orange", "aqua ", "yellow ", "gold ", "brown "]; 

var colors = colors.sort(); 

function do_this() { 
    var choose = Math.floor(Math.random() * (colors.length)); 
    target = colors[choose]; 
    alert("The correct answer is " + target); 
    alert(typeof(colors)); 
    while (true) { 
    play = prompt("I am thinking one of these colors\n\n" + colors + "What color am I thinking of?"); 
    guess = colors.indexOf(play); 

    count = count + 1; 
    if (guess == -1) { 
     alert("Sorry, I don't recognize your color"); 
     continue; 
    } 
    if (guess > target) { 
     alert("Sorry, your guess is not correct\n\n" + "Hint: your color is alphabetically higher than mine\n\n Please try again"); 
     continue; 
    } 
    if (guess < target) { 
     alert("Sorry, your guess is not correct\n\n" + "Hint: your color is alphabetically lower than mine\n\n Please try again"); 
     continue; 
    } 
    alert("Congratulations! You have guessed the color\n\n!" + "It took you" + count + "guesses to finish the game\n\n" + 
     "You can see the color of the background"); 
    return true; 
    } 
} 

    </script> 
    <body onload = "do_this()"> 
    </body> 
    </head> 
    </html> 

当我尝试运行时,即使输入了正确的颜色,它也会显示“对不起,我不认出你的颜色”,当我尝试检查它在猜测中显示的值是-1时。请帮忙!Javascript:这段代码有什么问题?

+0

它确实工作,当您在提示中的颜色名称之后输入空格时 –

回答

1

var colors = ["blue ", "coral ", "orchid ", "red ", "cyan ", "dark orange", "aqua ","yellow ", "gold ", "brown "];4

每个字词都加上一个空格。删除空间,它会工作。还有什么与4?你也可以删除它。

0

在每个颜色名称后面的双引号内有一个尾随空格。如果你删除空间,你应该很好去。