我正在进行我的第一个完整的编程项目,已经有两周的编程经验了,但遇到了一个似乎无法解决的难题。我正在制作一个连四游戏,并已经开始使用JavaScript构建逻辑,然后再推送到DOM中。我已经通过构造函数创建了单元格对象,并将其推入2D数组形式的游戏对象中。我成功创建了一个每次进行下棋并使用2天数组更改该列最低点处单元格值的函数。然而,我不确定如何让我的胜利检查函数运行。
到目前为止,我的逻辑是对于2D数组中的每个点,您可以通过行、列和对角线进行检查。我理解如何检查胜利的逻辑,但是我不知道如何遍历行和列的数组。在下面的示例中,this.cellsArray是Board Constructor中单元格对象的数组。该数组有7个列数组,每个数组有6行,因为我翻转了典型的行列逻辑以适应Connect Four的基于列的性质。然而,我无法像this.cellsArray[col][row]这样访问数组,因为col和row未定义,我也不知道如何定义索引值?任何帮助将不胜感激! Connect 4 示例:
到目前为止,我的逻辑是对于2D数组中的每个点,您可以通过行、列和对角线进行检查。我理解如何检查胜利的逻辑,但是我不知道如何遍历行和列的数组。在下面的示例中,this.cellsArray是Board Constructor中单元格对象的数组。该数组有7个列数组,每个数组有6行,因为我翻转了典型的行列逻辑以适应Connect Four的基于列的性质。然而,我无法像this.cellsArray[col][row]这样访问数组,因为col和row未定义,我也不知道如何定义索引值?任何帮助将不胜感激! Connect 4 示例:
//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!')
}
};