diff --git a/src/main/java/com/example/tictactoe_game/TicTacToeFX.java b/src/main/java/com/example/tictactoe_game/TicTacToeFX.java index 175442c8fa65d5664fbd33a6a0eab6d528dc13af..a4e23a8e468dff545e07976060daf9f89a554dee 100644 --- a/src/main/java/com/example/tictactoe_game/TicTacToeFX.java +++ b/src/main/java/com/example/tictactoe_game/TicTacToeFX.java @@ -8,6 +8,10 @@ import javafx.stage.Stage; public class TicTacToeFX extends Application { + private Button[][] buttons = new Button[3][3]; + + private boolean isXTurn = true; + @Override public void start(Stage primaryStage) { // Erstelle das das Spielfeld @@ -19,16 +23,84 @@ public class TicTacToeFX extends Application { Button button = new Button(); button.setPrefSize(100, 100); // Größe der Buttons grid.add(button, col, row); // Hinzufügen zum Grid + buttons[row][col] = button; + + button.setOnAction(event -> handleButtonClick(button)); } } // Szene und Stage erstellen - Scene scene = new Scene(grid, 300, 300); // Größe der Szene + Scene scene1 = new Scene(grid, 300, 300); // Größe der Szene primaryStage.setTitle("Tic-Tac-Toe"); - primaryStage.setScene(scene); + primaryStage.setScene(scene1); primaryStage.show(); } + private void handleButtonClick(Button button) { + if(button.getText().isEmpty()) { + if (this.isXTurn) { + button.setText("X"); + this.isXTurn = false; + } else { + button.setText("O"); + this.isXTurn = true; + } + if (checkForWin()) { + buttons[1][1].setText("juhu"); + } + else if(checkForDraw()){ + buttons[1][1].setText("draw"); + } + } + } + + private boolean checkForWin(){ + for(int row = 0; row < 3; row++){ + String text1 = buttons[row][0].getText(); + String text2 = buttons[row][1].getText(); + String text3 = buttons[row][2].getText(); + if(!text1.isEmpty() && text1.equals(text2) && text1.equals(text3)){ + return true; + } + } + + for(int col = 0; col < 3; col++){ + String text1 = buttons[0][col].getText(); + String text2 = buttons[1][col].getText(); + String text3 = buttons[2][col].getText(); + if(!text1.isEmpty() && text1.equals(text2) && text1.equals(text3)){ + return true; + } + } + + String upperLeftCorner = buttons[0][0].getText(); + String center = buttons[1][1].getText(); + String lowerRightCorner = buttons[2][2].getText(); + String upperRightCorner = buttons[0][2].getText(); + String lowerLeftCorner = buttons[2][0].getText(); + + if(!upperLeftCorner.isEmpty() && upperLeftCorner.equals(center) && upperLeftCorner.equals(lowerRightCorner)){ + return true; + } + + if(!upperRightCorner.isEmpty() && upperRightCorner.equals(center) && upperRightCorner.equals(lowerLeftCorner)){ + return true; + } + + return false; + } + + private boolean checkForDraw(){ + for(int row = 0; row < 3; row++){ + for(int col = 0; col < 3; col++){ + if(buttons[row][col].getText().isEmpty()){ + return false; + } + } + } + return true; + } + public static void main(String[] args) { launch(args); }