【发布时间】:2014-01-02 13:56:51
【问题描述】:
我有一个 3x3 整数数组(0 或 1):int[][] matrix。目标是通过假设 0 是墙来通过 0 和 1 的迷宫(矩阵)。我不知道如何去检查邻居。
例如,从[0][0] 开始并在其上方检查,我需要执行以下操作:
if (currentPosition.getColumn()-1 != null && !checkIfWall[getRow()][getColumn()-1]) {
//do stuff
}
其中 checkIfWall 是墙壁的布尔二维数组或不是墙壁。问题是checkIfWall 在任何值为 -1 时返回 ArrayOutOfBounds。另外,我还得写另外三个 if 语句来检查下、左、右,这看起来很乏味。有没有更好的方法来做到这一点?
【问题讨论】:
-
你为什么允许
getRow()和getColumn()分别返回 -1 和 0,开始? -
为什么只有 0 和 1 的 int[] 并且还有代表相同事物的布尔数组?
-
getRow 和getColumn 获取当前位置。我想你可以让 int[][] 矩阵只检查它是 1 还是 0 而不是布尔值
标签: java multidimensional-array indexoutofboundsexception