我正在尝试制作两个人的井字游戏。当第一个玩家单击按钮上带有标记X的OnClick方法时,我却卡住了-我不知道如何制作onClick()来检测第二个玩家何时单击以及如何在按钮上标记O ..plz帮助..我的.java在下面

public class MainActivity extends Activity {


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setBoard();
    }
    int c[][];
    int i, j, k = 0;
    Button b[][];
    TextView textView;

    private void setBoard() {

        b = new Button[4][4];
        c = new int[4][4];


        // Button = (TextView) findViewById(R.id.newgame);


        b[1][3] = (Button) findViewById(R.id.one);
        b[1][2] = (Button) findViewById(R.id.two);
        b[1][1] = (Button) findViewById(R.id.three);


        b[2][3] = (Button) findViewById(R.id.four);
        b[2][2] = (Button) findViewById(R.id.five);
        b[2][1] = (Button) findViewById(R.id.six);


        b[3][3] = (Button) findViewById(R.id.seven);
        b[3][2] = (Button) findViewById(R.id.eight);
        b[3][1] = (Button) findViewById(R.id.nine);

        for (i = 1; i <= 3; i++) {
            for (j = 1; j <= 3; j++)
                c[i][j] = 2;
        }

        for (i = 1; i <= 3; i++) {
            for (j = 1; j <= 3; j++) {
                b[i][j].setOnClickListener(new MyClickListener(i, j));
                if (!b[i][j].isEnabled()) {
                    b[i][j].setText("o");
                    b[i][j].setEnabled(true);
                }
            }
        }
    }
    class MyClickListener implements View.OnClickListener {
            int x;
            int y;


            public MyClickListener(int x, int y) {
                this.x = x;
                this.y = y;
            }


            public void onClick(View view) {
                if (b[x][y].isEnabled()) {
                    b[x][y].setEnabled(false);
                    b[x][y].setText("X");
                    c[x][y] = 0;
                    textView.setText("");
//WHAT NEXT




                    }
                }
            }
        }
}

最佳答案

您可能应该添加一个新变量

int playerTurn;


最初应将其设置为1。在第一次执行onClick()时,playerTurn的值为1,因此放置一个X,然后将playerTurn更改为2。在第二次单击时,当您检查playerTurn的值时,您将放置一个O,然后将其值更改为1。

int player = 1;
public void onClick(View view){
    if (b[x][y].isEnabled() {
        b[x][y].setEnabled(false);
        if (player == 1){
            b[x][y].setText("X");
            c[x][y] = 0;
            player = 1;
        } else {
            b[x][y].setText("O");
            c[x][y] = 1;
            player = 2;
        }
    }
}

08-28 01:31