Java 如何在Tictaoe游戏中缩短if语句以检查行等?

Java 如何在Tictaoe游戏中缩短if语句以检查行等?,java,arrays,eclipse,if-statement,Java,Arrays,Eclipse,If Statement,我想检查我的行中是否有x和o 这就是我到目前为止所做的: if (gameboard[0] == 1 && gameboard[1] == 1 && gameboard[2] == 1) { return winner; } 这对我来说很好。我想知道的是,我如何减少这里的代码量,而不是用if语句来检查每一行,特别是如果我决定将网格变大的话 我试着做了以下几件事 for (int i = 0; i < 3; i++) { gameboard

我想检查我的行中是否有x和o

这就是我到目前为止所做的:

if (gameboard[0] == 1 && gameboard[1] == 1 && gameboard[2] == 1) {
     return winner;
}
这对我来说很好。我想知道的是,我如何减少这里的代码量,而不是用if语句来检查每一行,特别是如果我决定将网格变大的话

我试着做了以下几件事

for (int i = 0; i < 3; i++) {
    gameboard[i] = 1;
}
return winner;
for(int i=0;i<3;i++){
游戏板[i]=1;
}
返回赢家;

但这没什么用。感谢您的帮助。

若要查看row win,请执行以下操作:

  boolean win = true;
  for (int col = 0; col < grid.length; col++) {
     if (grid[col][j] != turn) {
        win = false;
     }
  }
这是根据我对一个类似问题的回答得出的:。另外,请查看此答案。

让您知道

for (int i = 0; i<3; i++){
    gameboard[i] = 1;
}
return winner;
…或者你可以

int x = 3, p =0;
for (int i = 0; i < x; i++)
{
    if (gameboard[i] == 1)
         p++;
}
if (p == x)
    return winner;
int x = 3, p = 0, i = 0;
while (i < x && p != x && p < gameboard.length) {
    if (gameboard[i] == 1) p++;
    if (p == x) {
        System.out.println("eee2");
        return winner;
    }
    i++;
}
intx=3,p=0,i=0;
而(i
您的第二个变体根本没有做相同的事情。应该是吗?里面没有条件(和赋值)。对于一般网格大小,您确实会使用循环。尝试并
if(gameboard[i]!=1)返回false
。如果第一个值为零,则无需继续循环。如何
win=false;中断
int x = 3, p =0;
for (int i = 0; i < x; i++)
{
    if (gameboard[i] == 1)
         p++;
}
if (p == x)
    return winner;
int x = 3, p = 0, i = 0;
while (i < x && p != x && p < gameboard.length) {
    if (gameboard[i] == 1) p++;
    if (p == x) {
        System.out.println("eee2");
        return winner;
    }
    i++;
}