diff --git a/charac.c b/charac.c
index e44b41a592f54c218e54705b9d8de5f0a3a5b569..680acb8a4b872091e6b61719964eb7930b91bc30 100644
--- a/charac.c
+++ b/charac.c
@@ -6,8 +6,8 @@ Vorbedingung: Es wurde eine Taste gedrückt
 Nachbedingung: Position des Characters hat sich je nach Tasteneingabe verändert. Wenn keine Steuertaste gedrückt wird, dann passiert nichts.
 */
 
-// playerscore = interne Darstellung der ingesamt gelaufenen Schritte minus der zurückgelaufenen Schritte
-// playerhighscore = externe Darstellung; höchste Anzahl an nach oben gelaufenen Schritten
+// playerscore = interne Darstellung der ingesamt gelaufenen Schritte minus der zurückgelaufenen Schritte + gesammelte Münzen
+// playerhighscore = externe Darstellung; höchste Anzahl an nach oben gelaufenen Schritten + gesammelte Münzen
 // ROW_SIZE = 100
 // SDL_SCANCODE_X = MACRO von SDL anstall "magic numbers" zu verwenden
 
diff --git a/main.c b/main.c
index 6a97d0f9d2a9770402da038ee4fb3aaec46de5a0..41919d000a5e84d3954a5a9a8e79456fbc558474 100644
--- a/main.c
+++ b/main.c
@@ -48,10 +48,13 @@ int main(void) {
     }
 
     //Lädt den Titelbildschirm
-    title_screen(renderer);
+    if (title_screen(renderer)){
+        exitGame(renderer,window);
+        return(0);
+    }
 
     int theme; 
-    bool change_Map = true;
+    int change_Map = 1;
 
     while (true) {
         if (change_Map){
@@ -63,6 +66,9 @@ int main(void) {
         if (gameLoop(theme,renderer))
             break;
         change_Map = end_screen(renderer);
+        if (change_Map == 2 || change_Map == -1){
+            break;
+        }
 
     }
     
diff --git a/menu2.c b/menu2.c
index 3f7003cf3dec20c812147fe178d18fbd6881e47d..a2224465d44675da88d77684d9ad92afddffa48f 100644
--- a/menu2.c
+++ b/menu2.c
@@ -213,7 +213,7 @@ wird nach Position des Rahmens das entsprechende Level geladen
 Vorb.: Das Spiel ist angehalten und es wird "Nochmal (y)/(n)" angezeigt 
 Nachb.: Das Spiel wird erneut gestartet, wenn y gedrückt wird. Wenn n gedrückt wird, wird die Levelauswahl geöffnet
 */
-bool end_screen(SDL_Renderer* renderer) {
+int end_screen(SDL_Renderer* renderer) {
 
 //Schriftart, -farbe und -groesse festesetzen
 
@@ -263,25 +263,24 @@ bool end_screen(SDL_Renderer* renderer) {
 
     while (SDL_PollEvent(&e)) {
       switch (e.type) {
-        case SDL_QUIT:
-          exit(0);
-        case SDL_KEYDOWN:
+      case SDL_QUIT:
+          return(2); // Spiel wird geschlossen
+      case SDL_KEYDOWN:
           input = e.key.keysym.scancode;
           if (input == y) {
             SDL_FreeSurface(surfaceMessage);
             SDL_DestroyTexture(Message);
-            quit = true;
-            return(false);
+            return(0);
           }
-          
+ 
           if (input == n) {
             SDL_FreeSurface(surfaceMessage);
             SDL_DestroyTexture(Message);
-            return(true);
+            return(1);
           }
       }
     }
   }
-  return(true);
+  return(1);
 }
 
diff --git a/menu2.h b/menu2.h
index a7c9e28cdfbb66ce48254d404d88e8853005b0e7..f5a679ddbcf2d4796afa3124d64f93c8e38c3fde 100644
--- a/menu2.h
+++ b/menu2.h
@@ -15,7 +15,7 @@
 
 
 //Declaration of functions
-bool end_screen(SDL_Renderer*);
+int end_screen(SDL_Renderer*);
 
 enum vehicle startscreen(SDL_Renderer*);
 
diff --git a/title_screen.c b/title_screen.c
index 89f6873102ccfe388e766ece6e09f656d909c6cd..206acda46ddf47cfd18ac51d1243ae160de386f9 100644
--- a/title_screen.c
+++ b/title_screen.c
@@ -100,7 +100,7 @@ int title_screen(SDL_Renderer* renderer){
         while (SDL_PollEvent(&e)) {
           switch (e.type) {
           case SDL_QUIT:
-              exit(0);
+              return(1);
           case SDL_KEYDOWN:
             return(0);
           }