单击JavaFX按钮,然后单击下一步

时间:2017-04-18 13:19:11

标签: java javafx

我会做一个游戏:使用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有下一步动作。

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;
        });
    }
}

根据您的需要进行调整