0

我正在使用二维 JButton 数组在 Java 中编写井字游戏。我需要能够使用 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);

    }
4

2 回答 2

1

垂直:在您的代码中将按钮[i][j] 替换为按钮[j][i]。对角线:创建一个检查按钮[i][i]的循环。反向对角线:创建一个循环,在其中检查按钮 [buttons.size - i - 1] [i]。

于 2012-03-28T00:55:40.300 回答
1

首先在纸上画一个棋盘,并注意垂直获胜配置的坐标。

然后重复对角线获胜。

这应该告诉你你需要知道什么。

于 2012-03-28T00:42:53.047 回答