【问题标题】:How to check for Vertical and diagonal Win in Java 2d array Tic Tac Toe如何在 Java 2d 数组井字游戏中检查垂直和对角线获胜
【发布时间】:2012-03-28 00:33:47
【问题描述】:

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

    }

【问题讨论】:

    标签: java arrays loops 2d tic-tac-toe


    【解决方案1】:

    首先在纸上画一个棋盘,然后记下垂直获胜配置的坐标。

    然后重复对角线获胜。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 当我将按钮[i][j] 替换为按钮[j][i] 时,游戏会在连续出现 2 个 x 或 o 后结束。我需要它以连续 3 个结尾。
      猜你喜欢
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多