【发布时间】:2020-04-24 03:22:03
【问题描述】:
我在完成这项学校作业时遇到了问题。我想实现一个方法,其中代码为//call method to check for winner,在每回合后检查获胜者。
我不确定如何做到这一点。我尝试了各种不同的方法。然后我想在井字棋盘上显示获胜者的名字“X 胜”或“O 胜”。
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
import javafx.scene.layout.GridPane;
import javafx.geometry.*;
public class Main extends Application {
public static int turn = 1;
public static void main(String[] args) {
launch(args);
} //end main
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Play Tic Tac Toe!");
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setHgap(10);
grid.setVgap(10);
grid.setPadding(new Insets(25, 25, 25, 25));
Scene scene = new Scene(grid, 300, 275);
primaryStage.setScene(scene);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
grid.add(createButton(), i, j);
}
}
primaryStage.show();
}
private static Button createButton() {
//instantiates button objects with the same properties
Button b = new Button(" ");
b.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
//implemennt Tic Tac Toe logic
if(turn % 2 != 0) {
b.setText("X");
}
else {
b.setText("O");
}
int row = GridPane.getRowIndex(b);
int col = GridPane.getColumnIndex(b);
//outputs to the terminal
System.out.println("Turn = " + turn + " Row = " + row + " Col = " + col);
b.setDisable(true); //after button is clicked, disable it
// call method to check for winner
turn++;
}
});
return b;
}
【问题讨论】:
-
引自网页How much research effort is expected of Stack Overflow users? 在 Stack Overflow 上提问应该是您寻找答案过程中的最后一步您不尝试在 Internet 上搜索术语 javafx tic tac toe 吗?