Java 如何在Tictaoe游戏中缩短if语句以检查行等?
我想检查我的行中是否有x和o 这就是我到目前为止所做的: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
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++;
}