diff --git a/src/main/java/com/example/tictactoe_game/TicTacToeFX.java b/src/main/java/com/example/tictactoe_game/TicTacToeFX.java
index ef0159c3a0fa207a94e0be461a9554fd7643aa16..cb69a8f7861b8feb2847a3c4ebb2cde61a6981cd 100644
--- a/src/main/java/com/example/tictactoe_game/TicTacToeFX.java
+++ b/src/main/java/com/example/tictactoe_game/TicTacToeFX.java
@@ -29,63 +29,100 @@ public class TicTacToeFX extends Application {
     public void start(Stage primaryStage) {
 
         EventHandler<GameEvent> gameEventHandler = gameEvent -> {
-            String currentPlayer = this.isXTurn ? "X" : "O";
+            String winner = this.isXTurn ? "X" : "O";
+
+            // Dialogfenster erstellen
             final Stage dialog = new Stage();
             dialog.initModality(Modality.APPLICATION_MODAL);
             dialog.initOwner(primaryStage);
+
             VBox dialogVbox = new VBox(20);
+            dialogVbox.setAlignment(Pos.CENTER);
 
+            // Dialogtexte
             if (gameEvent.getEventType() == GameEvent.VICTORY_EVENT) {
-                dialogVbox.getChildren().add(new Text("This is a victory for player " + currentPlayer + " in turn " + this.currentTurn + "!"));
+                dialogVbox.getChildren().add(new Text("This is a victory for player " + winner + " in turn " + this.currentTurn + "!"));
             } else if (gameEvent.getEventType() == GameEvent.DRAW_EVENT) {
-                if (gameEvent.getEventType() == GameEvent.VICTORY_EVENT) {
-                    dialogVbox.getChildren().add(new Text("This is a victory for player " + currentPlayer + "!"));
-                } else if (gameEvent.getEventType() == GameEvent.DRAW_EVENT) {
-                    dialogVbox.getChildren().add(new Text("This is a Draw!"));
-                }
+                dialogVbox.getChildren().add(new Text("This is a Draw!"));
+            }
 
-                Button closeButton = new Button();
-                closeButton.setText("Close");
-                closeButton.setOnAction(event -> primaryStage.close());
-                dialogVbox.getChildren().add(closeButton);
-                dialogVbox.setAlignment(Pos.CENTER);
+            // Schaltfläche "Schließen"
+            Button closeButton = new Button("Close");
+            closeButton.setOnAction(event -> primaryStage.close());
+            dialogVbox.getChildren().add(closeButton);
 
-                Scene dialogScene = new Scene(dialogVbox, 200, 100);
-                dialog.setScene(dialogScene);
-                dialog.show();
-            }
+            //Schaltfläche "Restart"
+            Button restartButton = new Button("Restart");
+            restartButton.setOnAction(event -> {
+                restartGame();
+                dialog.close();
+            });
+            dialogVbox.getChildren().add(restartButton);
+
+
+            Scene dialogScene = new Scene(dialogVbox, 300, 200);
+            dialog.setScene(dialogScene);
+            dialog.show();
         };
 
-        // Erstelle das das Spielfeld
+        // Spielbrett erstellen
         GridPane grid = new GridPane();
 
         // 3x3 Buttons hinzufügen
         for (int row = 0; row < 3; row++) {
             for (int col = 0; col < 3; col++) {
                 Button button = new Button();
-                button.setPrefSize(100, 100); // Größe der Buttons
-                grid.add(button, col, row); // Hinzufügen zum Grid
+                button.setPrefSize(100, 100);
+                grid.add(button, col, row);
                 buttons[row][col] = button;
                 button.setOnAction(event -> handleButtonClick(button));
             }
         }
+
+        // Ereignisse für Sieg und Unentschieden hinzufügen
         grid.addEventHandler(GameEvent.VICTORY_EVENT, gameEventHandler);
         grid.addEventHandler(GameEvent.DRAW_EVENT, gameEventHandler);
 
-        currentPlayer = new Text();
-        currentPlayer.setText("Current Player: " + (isXTurn ? "X" : "O"));
+        // Texte für aktuellen Spieler und Züge
+        currentPlayer = new Text("Current Player: " + (isXTurn ? "X" : "O"));
+        turnCounter = new Text("Current Turn: " + currentTurn);
+
+        // Elemente dem Spielfeld hinzufügen
         grid.add(currentPlayer, 3, 0);
-        turnCounter = new Text();
-        turnCounter.setText("Current Turn: " + currentTurn);
         grid.add(turnCounter, 3, 1);
 
+        Button restartButton = new Button("Restart");
+        restartButton.setOnAction(event -> restartGame());
+
+        VBox vbox = new VBox(10);
+        vbox.setAlignment(Pos.CENTER);
+        vbox.getChildren().addAll(grid, currentPlayer, turnCounter, restartButton);
+
         // Szene und Stage erstellen
-        Scene scene1 = new Scene(grid, 400, 300); // Größe der Szene
+        Scene scene1 = new Scene(vbox, 400, 400);
         primaryStage.setTitle("Tic-Tac-Toe");
         primaryStage.setScene(scene1);
         primaryStage.show();
+
+
+    }
+
+    private  void  restartGame(){
+        isXTurn = true;
+        isGameOver = false;
+        currentTurn = 0;
+        currentPlayer.setText("Current Player: X");
+        turnCounter.setText("Current Turn: 0");
+
+        for(int i = 0; i < 3; i++){
+            for(int j = 0; j < 3; j++){
+                buttons[i][j].setText("");
+            }
+        }
+
     }
 
+
     private void handleButtonClick(Button button) {
         if (button.getText().isEmpty() && !this.isGameOver) {
             if (this.isXTurn) {