我有一个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;
}
答案 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;
}