0

JButtonの2D配列を使用して、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

紙にボードを描くことから始め、垂直方向の勝利構成の座標を書き留めます。

次に、斜めの勝利を繰り返します。

これは、あなたが知る必要があることを教えてくれるはずです。

于 2012-03-28T00:42:53.047 に答える
1

垂直方向: コード内の buttons[i][j] を buttons[j][i] に置き換えます。対角線: ボタン [i][i] をチェックする単一のループを作成します。逆対角線: ボタン [buttons.size - i - 1] [i] をチェックする単一のループを作成します。

于 2012-03-28T00:55:40.300 に答える