2013-03-24 59 views
0

我試圖創建一個二維數組,並將四個X放在同一列中。我創建了一個循環來檢測和計算X的數量,但它不起作用。二維數組中的字符計數器

var creatematrix = function (nbRang, nbColumn) { 
    var result = Array(nbRang); 
    for (var i=0; i<nbRang; i++) { 
     result[i] = Array(nbColumn); 
    } 
    return result; 
}; 

var m = creatematrix(2, 6); 

m[1][2] = "X"; 
m[1][3] = "X"; 
m[1][4] = "X"; 
m[1][5] = "X"; 

    var sumX = 0 

    for(var k = 0; k < 6 ; k++){ 



        if(m[1][k]== "X"){ 
        sumX += 1; 

      }else if(sumX == 4){ 

        alert("player won"); 
       } 

    } 
+2

'爲(VAR K = 6; k <= 6; k - )'< - – 2013-03-24 00:48:50

+2

* 「爲什麼會出現在我的節目一個無限循環?」 *因爲你把它放在那裏;)'因爲你從'6'開始並且始終遞減數字,所以'k'總是'<= 6'。 – 2013-03-24 00:49:06

+0

一旦我注意到JS中帶有'--'的錯誤。所以我總是試着'++'來代替。 – 2013-03-24 00:55:30

回答

0

,因爲它屬於第一,如果在最後一次檢查語句,然後在循環結束你的代碼將永遠打sumX == 4。您應該在另一個if語句中執行檢查,而不是在if中執行。

if(m[1][k]== "X"){ 
    sumX += 1; 
} 
if(sumX == 4){ 
    alert("player won"); 
    break; 
} 
+0

感謝它現在的作品! – mike10101 2013-03-24 01:30:30