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