如何在没有人工干预的情况下点击按钮?

时间:2018-06-05 22:28:46

标签: java android

我有一个tic tac toe的功能,基本上当玩家点击按钮放置他们的X时,计算机的O同时放在第一个可用的空按钮内。

然而我喜欢的是 后,玩家放置一个X,计算机将其O放在第一个可用的空按钮上,而不是同一时间。有没有办法让计算机单独点击一个空按钮?

int

更新

整个代码段:

    @Override
    public void onClick(View v) {

        if (!((Button) v).getText().toString().equals("")) {
            return;
        }

        if (playerOneMove) {
            ((Button) v).setText("X");
            ((Button) v).setTextColor(playerX);
            computerMove();
        }
}

    private boolean computerMove() {
        String[][] field = new String[3][3];

        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                field[i][j] = buttons[i][j].getText().toString();
                if (field[i][j] == "") {
                    buttons[i][j].setText("O");
                    buttons[i][j].setTextColor(playerO);
                    return true;
                }
            }
        }
        return false;
    }

1 个答案:

答案 0 :(得分:0)

试试这个

button.performClick();
通过运算代码后

更新

你的代码非常好但有一个小bug。在computerMove()函数中,您使用==比较了字符串,这很容易导致Java出现问题。我用String.equals(String)替换它并玩了一场游戏。工作正常。

private boolean computerMove() {
    String[][] field = new String[3][3];

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            field[i][j] = buttons[i][j].getText().toString();
            if (field[i][j].equals("")) {
                buttons[i][j].setText("O");
                buttons[i][j].setTextColor(playerO);
                return true;
            }
        }
    }
    return false;
}