這是一個JavaScript問題。 所以這就是我所做的。我創建了2個數組。 1個用於電腦,另一個用於播放器。在computerTurn函數中計算機創建一個隨機數並將其放入數組中。它會從陣列中輸出將播放按鈕的數字。如果計數器等於陣列的長度,那麼它將切換到玩家輪流。在playerTurn功能中,播放器有5秒鐘可以按照電腦選擇的按鈕。當數組中有2個隨機元素時,問題發生在第二輪之後。由於某些原因,它不能清除我的playerArray,只是將數字加起來。 我在做什麼錯?Simon Game in javascript
該項目可以在這裏找到: https://codepen.io/roger1891/full/vmYqwx/
我認爲問題就出在這裏:
var playerTurn = function() {
if(currentPlayerTurn == "human" && onGoingGame == false) {
playerArray = [];
$(".my-btn").click(function(){
var $input = $(this);
var attrString = $input.attr("id");
//only get number from id attribute
var strNum = attrString.replace(/^\D+/g, '');
//convert theNumber from string to number
var theNum = parseInt(strNum);
playerArray.push(theNum);
console.log("this is the num the player picked " + theNum);
console.log(playerArray);
});
setTimeout(function() {
var is_same = playerArray.length == sequenceArray.length && playerArray.every(function(element, index) {
return element === sequenceArray[index];
});
is_same;
console.log(is_same);
if(is_same == true) {
onGoingGame = true;
currentPlayerTurn = "computer";
computerTurn();
}
}, 5000);
}
}
setTimeout(function() {
var is_same = playerArray.length == sequenceArray.length && playerArray.every(function(element, index) {
return element === sequenceArray[index];
});
is_same;
console.log(is_same);
if(is_same == true) {
onGoingGame = true;
currentPlayerTurn = "computer";
computerTurn();
}
}, 5000);
}
}
你先生,是天才!我一直堅持這幾個小時。非常感謝你的幫助 :) – Roger