我正在爲我的第一個完整程序進行兩週的編程下我的腰帶,並遇到了我似乎無法弄清楚的路障。我正在做一個連接4遊戲,並且已經開始在推送到DOM之前在JavaScript中構建邏輯。我已經開始使用構造函數創建的單元對象,然後將它們以二維數組的形式推送到遊戲對象中。我設法創建了一個函數,每次都進行播放,並用2天的數組更改該列最低點處的單元格值。但是,我不知道如何讓我的支票贏得功能操作。連接四個遊戲檢查勝利JS
到目前爲止,我的邏輯是,對於2D數組中的每個點,您可以按行,按列和對角線進行檢查。我理解如何檢查win的邏輯,但我不明白如何按行和列遍歷數組。在下面的示例中,this.cellsArray是Board構造函數中的一組單元對象。該陣列有7列數組,每行6列,因爲我翻轉了典型的行列邏輯,以說明Connect Four的基於列的特性。但是我不能像this.cellsArray [col] [row]那樣訪問數組,因爲col和row沒有定義,我不知道如何定義一個索引值?任何幫助,將不勝感激!
實施例:
//array location is equal to an instance of this.cellsArray[col][row]
Board.prototype.checkRowRight = function (arrayLocation) {
if ((arrayLocation[i+1][i].value === arrayLocation.value) && (arrayLocation[i+2][i]=== arrayLocation.value) && (arrayLocation[i+3][i].value === arraylocation.value)){
this.winner = this.currentPlayer;
this.winnerFound = true;
console.log('Winner has been found!')
}
};
[四個連續的邏輯]可能的重複(http://stackoverflow.com/questions/15457796/four-in-a-row-logic) - 雖然該特定的問題是爲C,代碼是標準程序風格和輕鬆適應JS。 – paxdiablo
這有幫助,但我想我的問題是更少的邏輯和更多的語法,已編輯更新。 –
C.Kearns,請參閱下面的答案,它基本上是轉換成Javascript的邏輯。 – paxdiablo