2016-12-06 42 views
0

我正在制作一个颜色猜测游戏,它将让用户从数组中选择一种颜色。如何只接受数组内的提示字段中的特定颜色

然后,它会将页面颜色更改为颜色,一旦他们正确地猜出它。

但是,输入将接受不在数组中的随机字母。

如何添加函数来仅接受存储在数组中的字母。

下面是我的代码:

var array = [ 
    "blue", "gray", "yellow", "green", "black", "cyan", "purple", "silver", 
    "orange", "lime", "magenta", "olive", "maroon", "brown", "darkblue", "lightblue" 
]; 
array = array.sort(); 
var guess_input; 
var finished = false; 
var guesses = 0; 
alert(target); 

function do_game() { 
    var target_index = Math.floor(Math.random() * (array.length - 0)) + 0; 
    var target = array[target_index]; 
    var message = "I am thinking of one of these array:\n\n"; 
    for (var i = 0; i < array.length; i++) { 
    message += array[i]; 
    if (i == (array.length - 2)) { 
     message += " and "; 
    } else if (i != (array.length - 1)) { 
     message += ", "; 
    } 
    } 
    while (!finished) { 
    guess_input = prompt(message).toLowerCase(); 
    guesses++; 
    finished = check_guess(guess_input, target); 
    if (finished) { 
     var myBody = document.getElementsByTagName("body")[0]; 
     myBody.style.background = target; 
    } 
    } 
    var myBody = document.getElementsByTagName("body")[0]; 
    myBody.style.background = target; 
} 

function check_guess(guesses, target) { 
    if (array.indexOf(guesses) < 0) { 
    return true; 
    } 
} 

回答

1

var color = ""; 
 
var colors = ["blue", "gray", "yellow"]; 
 
while(colors.indexOf(color) < 0) 
 
    color=prompt("Please enter a valid color: "+colors.join(', ')); 
 
alert('Your chosen color is: '+color);

+0

@I按倒熊一次。有没有办法做到这一点,而没有提示/提示?当然是 – Coder994

+0

,但你的问题明确要求提示。 –

+0

是的,看我的回答 –

-1

你不能做到这一点与Window.prompt,因为这是一个浏览器实现的机制,是非常有限的。

您可以使用输入字段和验证上KEYUP:

<input type="text" onkeyup="validateInput(this)" />

function validateInput(e){ 

    //check that the e.keyCode is one that you permit, return false 
} 
+0

嗨...对不起,请问为什么downvote? –

相关问题