所以我試圖建立一個Simon遊戲。 首先,我創建了一個隨機數組,其中有20個值在1和4之間變化(這將標識遊戲的每種顏色)。 所以1將是紅色,2將是藍色,3將是綠色,4將是黃色。 所以我得到的數組是這樣的:西蒙遊戲如何進行?
var arrayRandomColors = [1, 3, 1, 2, 4, 3, 2, 1, 3, 2, 1, 2, 4, 1, 2, 3, 4, 1, 3, 2]
現在,這聲音和我的西蒙遊戲色彩的德秩序。不過,我現在需要去那邊數組是這樣的:
Level 1 - [1] -> Level 2 - [1, 3] -> Level 3 - [1, 3, 1] -> Level 4 - [1, 3, 1, 2]... etc. And then each time it loops over these arrays it plays a sequence o sounds that corresponds to the current level.
所以這就是我所做的:
var j=2;
var arrayPlay = [];
for (var j=2; j<22; j++){
for(var i=1; i<j; i++){
arrayPlay.push(arrayRandomColors[i-1]);
}
console.log(arrayPlay); //[1] -> [1,3] -> [1,3,1]...etc
arrayPlay = [];
}
到目前爲止,我設法讓所有我想要的陣列。然而,由於我需要慢慢瀏覽這些數字,顯示選中的顏色並在循環播放時播放聲音,而且for循環速度太快,所以我停滯不前。我想過這樣做:
for (var j=2; j<22; j++){
for(var i=1; i<j; i++){
arrayPlay.push(arrayRandomColors[i-1]);
}
//console.log(arrayPlay);
for (var k=0; k<arrayPlay.length; k++){
var id = setInterval(function(){
console.log("entrou");
if (arrayPlay[k] == 1){
$red.css("background-color", "#ffc1c1");
$red.delay(500);
$red.css("background-color", "red");
}
else if (arrayPlay[k] == 2){
$blue.css("background-color", "#a5b0f7");
$blue.delay(500);
$blue.css("background-color", "blue");
}
else if (arrayPlay[k] == 3){
$green.css("background-color", "#aff7a5");
$green.delay(500)
$green.css("background-color", "green");
}
else if (arrayPlay[k] == 4){
$yellow.css("background-color", "#fffb91");
$yellow.delay(500);
$yellow.css("background-color", "yellow");
}
}, 500);
}
arrayPlay = [];
console.log("\n");
}
但它不起作用。誰能幫我嗎?