我会做一个游戏:使用JavaFX进行tic tac toe。 我用按钮创建了3x3板 第一个玩家单击其中一个并选择按钮文本更改为“O”或“X” 我会做一个循环,像这样:
while(true){
player1.move("x");
player2.move("O");
}
在move()中:
public void move(String a){
board[0][0].setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
board[0][0].setText(a);
board[0][0].setDisable(true);
}
});
board[0][1].setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
board[0][1].setText(a);
board[0][1].setDisable(true);
}
});
[...]
}
但是应用程序不起作用(因为循环) 我不知道如何做第一个玩家有动作,当他选择并点击按钮时,玩家2有下一步动作。
答案 0 :(得分:1)
我不知道如何做第一个玩家有动作,当他选择并点击按钮时,玩家2有下一步动作。
您必须添加一个控制游戏的游戏管理器。你必须管理游戏的转弯,并检查每个回合,如果其中一个玩家获胜。当然还有其他的东西,比如搬家。
答案 1 :(得分:0)
您不需要任何主游戏循环,这是您需要的逻辑:
int player = 0;
String [] symbol = {"X", "O"};
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
board[i][j].setOnAction(action -> {
plansza[i][j].setText(symbol[player]);
checkIfPlayerWon();
player = (player + 1) % 2;
});
}
}
根据您的需要进行调整