Java 在二维数组中搜索对角线
我试图在2D数组中对角搜索connect four游戏。我以为我已经弄明白了,但显然我错了。第一组for循环工作正常,从右向左、对角搜索。第二组for循环无效。我想我所要做的就是把一些积极的信号转换成消极的信号,这样就行了。最终,通过改变网格高度-1,我能够使它部分工作……但是,我不断地得到绑定错误。在这一点上的任何帮助都将不胜感激。此外,2d阵列的栅格为5x4。所以它真的是连接3Java 在二维数组中搜索对角线,java,arrays,Java,Arrays,我试图在2D数组中对角搜索connect four游戏。我以为我已经弄明白了,但显然我错了。第一组for循环工作正常,从右向左、对角搜索。第二组for循环无效。我想我所要做的就是把一些积极的信号转换成消极的信号,这样就行了。最终,通过改变网格高度-1,我能够使它部分工作……但是,我不断地得到绑定错误。在这一点上的任何帮助都将不胜感激。此外,2d阵列的栅格为5x4。所以它真的是连接3 for (int y = 0; y <= GRID_HEIGHT-3; y++) {
for (int y = 0; y <= GRID_HEIGHT-3; y++) {
for (int x = 0; x <= GRID_WIDTH-3; x++) {
if (
state[y][x] != Player.NONE &&
state[y][x] == state[y+1][x+1] &&
state[y+1][x+1] == state[y+2][x+2]
) return state[y][x];
}
}
for (int y = 0; y <= GRID_HEIGHT-3; y++) {
for (int x = 0; x <= GRID_WIDTH-3; x++) {
if (
state[y][x] != Player.NONE &&
state[y][x] == state[y-1][x-1] &&
state[y-1][x-1] == state[y-1][x-2]
) return state[y][x];
}
}
return Player.NONE;
}
for(int y=0;y不是从0迭代到GRID\u HEIGHT-3
,而是从GRID\u HEIGHT
向下迭代到3。对于第二组循环,从索引中减去,这意味着索引可以低于零。需要循环从零开始
for (int y = 2; y < GRID_HEIGHT; y++) {
for (int x = 2; x < GRID_WIDTH; x++) {
if (
state[y][x] != Player.NONE &&
state[y][x] == state[y-1][x-1] &&
state[y-1][x-1] == state[y-2][x-2]
) return state[y][x];
}
}
for(int y=2;y
另外,一般来说,你应该说(x