我正在使用2d JButton阵列在Java中编写一个tic tac toe游戏 . 我需要能够使用For循环来检查游戏的赢家 . 当获胜的X或O组包含在一行中时,我已成功检查获胜者,但我不太确定如何检查列,对角线和反向对角线 . 我会使用另一种方法来检查获胜者,但我需要以非常具体的方式写这个 .
buttons = new JButton[3][3];
public String checkWin() {
String winString = null;
for (int i = 0; i < buttons.length; i++){
int xCount = 0;
int oCount = 0;
for(int j = 0; j < buttons[i].length; j++){
if (buttons[i][j].getText().equals("X")){
xCount ++;
}
if (buttons[i][j].getText().equals("O")){
oCount ++;
}
if (xCount == buttons[i].length){
winString = "X wins!";
}
if (oCount == buttons[i].length){
winString = "O wins!";
}
}
}
return (winString);
}
2 回答
垂直:用代码中的按钮[j] [i]替换按钮[i] [j] . 对角线:制作一个检查按钮[i] [i]的循环 . 反向对角线:在你检查按钮[buttons.size - i - 1] [i]的位置做一个循环 .
首先在纸上画板,并注意垂直获胜配置的坐标 .
然后重复对角线胜利 .
这应该告诉你你需要知道什么 .