2

私は Java の初心者で、TicTacToe プログラムを作成したばかりです。AIだけでなんとか作成できたのですが、別の人間と遊ぶオプションを追加しようとしたところ、問題が発生しました。ターンカウント(静的intとして定義)が偶数の場合、押されたボタンのテキストが何もないかどうかを確認し、そうであればxに設定するようにしました。それ以外の場合は、押されたボタンのテキストが何もないかどうかを確認し、そうである場合は O に設定する必要があります。何らかの理由で、else ステートメントをチェックしていないようです。次のコードはかなり繰り返しが多いので、最初の 12 行ほどを読むだけで意味がわかります。助けてくれてありがとう!

アクション リスナー メソッド:

public void actionPerformed(ActionEvent e) {
        if (e.getSource() == topl)
            if (turncount % 2 == 0)
            {
                if (topl.getText().equals(""))
                {
                    topl.setText("X");
                    turncount  += 1;
                    winchecker();

                }
            else
                if (topl.getText().equals(""))
                {
                    topl.setText("O");
                    turncount  += 1;
                    winchecker();

                }
            }
        if (e.getSource() == midup)
        {
            if (turncount % 2 == 0)
            {
            if (midup.getText().equals(""))
            {
                midup.setText("X");
                turncount  += 1;
                winchecker();

            }
            else
                if (midup.getText().equals(""))
                {
                    midup.setText("O");
                    turncount  += 1;
                    winchecker();

                }
            }
        }
        if (e.getSource() == topr)
        {
            if (turncount % 2 == 0)
            {
            if (topr.getText().equals(""))
            {
                topr.setText("X");
                turncount  += 1;
                winchecker();

            }
            else
                if (topr.getText().equals(""))
                {
                    topr.setText("O");
                    turncount  += 1;
                    winchecker();

                }
            }
        }
        if (e.getSource() == midl)
        {
            if (turncount % 2 == 0)
            {
            if (midl.getText().equals(""))
            {
                midl.setText("X");
                turncount  += 1;
                winchecker();

            }
            else
                if (midl.getText().equals(""))
                {
                    midl.setText("O");
                    turncount  += 1;
                    winchecker();
                }
            }
        }
        if (e.getSource() == mid)
        {
            if (turncount % 2 == 0)
            {
            if (mid.getText().equals(""))
            {
                mid.setText("X");
                turncount  += 1;
                winchecker();

            }
            else
                if (mid.getText().equals(""))
                {
                    mid.setText("O");
                    turncount  += 1;
                    winchecker();

                }
            }           }
        if (e.getSource() == midr)
        {
            if (turncount % 2 == 0)
            {
            if (midr.getText().equals(""))
            {
                midr.setText("X");
                turncount  += 1;
                winchecker();

            }
            else
                if (midr.getText().equals(""))
                {
                    midr.setText("O");
                    turncount  += 1;
                    winchecker();

                }
            }
        }
        if (e.getSource() == botl)
        {
            if (turncount % 2 == 0)
            {
            if (botl.getText().equals(""))
            {
                botl.setText("X");
                turncount  += 1;
                winchecker();

            }
            else
                if (botl.getText().equals(""))
                {
                    botl.setText("O");
                    turncount  += 1;
                    winchecker();

                }
            }
        }
        if (e.getSource() == midlow)
        {
            if (turncount % 2 == 0)
            {
            if (midlow.getText().equals(""))
            {
                midlow.setText("X");
                turncount  += 1;
                winchecker();

            }
            else
                if (midlow.getText().equals(""))
                {
                    midlow.setText("O");
                    turncount  += 1;
                    winchecker();

                }
            }
        }
        if (e.getSource() == botr)
        {
            if (turncount % 2 == 0)
            {
            if (botr.getText().equals(""))
            {
                botr.setText("X");
                turncount  += 1;
                winchecker();

            }
            else
                if (botr.getText().equals(""))
                {
                    botr.setText("O");
                    turncount  += 1;
                    winchecker();

                }
            }
        }
    }
4

2 に答える 2