diff --git a/auto.c b/auto.c
index 33a4a28fc375296e2d91494adc3ef2816866a4b1..a1161cbf7cef4e7ce0f276185984eb2224c8ec60 100644
--- a/auto.c
+++ b/auto.c
@@ -2,7 +2,13 @@
 #include <stdbool.h>
 #include "header.h"
 
-// Es wird ein Auto/Boot mit den Parametern erzeugt und zurückgegeben
+// Vorbedinung: 
+//      0 < speed < 10, 0 < width < 500, 0 < height < 100, 
+//      -5000 <= pred_pos < 5000 <- Position des Vorgängerautos
+//      0 <= pred_width < 500 
+
+// Nachbedingung: Ein struct Auto mit den Parametern wurde initialisiert
+
 struct Auto* init_car(int speed,int width,int height,int pred_pos,int pred_width,enum vehicle t){
     struct Auto *b = malloc(sizeof(*b));
 
@@ -14,27 +20,27 @@ struct Auto* init_car(int speed,int width,int height,int pred_pos,int pred_width
     int distance;
     int p = rand() % 10;
     
-    if (p == 0 && t == car){
+    if (p == 0 && t == car){ // Erzeuge eine Münze
+
         b->width = 50;
         b->height = 50;
         b->type = coin;
-        if (pred_width == 0){
+
+        if (pred_width == 0){ // kein Vorgänger
             b->x_pos = pred_pos;
+
         }else{
             int distance = 25;
-
-            if (speed < 0){
-                b->x_pos = pred_pos + pred_width + distance;
-            }else{
-                b->x_pos = pred_pos - b->width - distance;
-            }
         }
     }else{
+
         b->width = width;
         b->height = height;
         b->type = t;
-        if (pred_width == 0){
+
+        if (pred_width == 0){ // kein Vorgänger
             b->x_pos = pred_pos;
+
         }else{
             if (t == car || t == boat){
                 min_distance = 100 * abs(speed);
@@ -44,32 +50,37 @@ struct Auto* init_car(int speed,int width,int height,int pred_pos,int pred_width
                 min_distance = 50 * abs(speed) + 50;
                 distance = (rand() % 500) + min_distance;
             }
-            
-            if (speed < 0){
-                b->x_pos = pred_pos + pred_width + distance;
-            }else{
-                b->x_pos = pred_pos - b->width - distance;
-            }
-
         }
     }
+
+    if (speed < 0){
+         b->x_pos = pred_pos + pred_width + distance;
+    }else{
+        b->x_pos = pred_pos - b->width - distance;
+    }
+    
     return(b);
 }
 
-// erzeugt eine verkettete Liste an Autos
-struct LinkedList_Auto* init_car_list(int speed,int length,int width,int start_pos,enum vehicle t){
+// Vorbedinung: 
+//      0 < speed < 10, 0 <  < 500, 0 < height < 100, 
+//       <= start_pos <= 900;
+
+// Nachbedingung: Initialisierte LinkedList von Autos, abhängig von den Parametern
+
+struct LinkedList_Auto* init_car_list(int speed,int width,int height,int start_pos,enum vehicle t){
     struct LinkedList_Auto *list = malloc(sizeof(*list));
 
     if (list == NULL){
             perror("kein Speicherplatz");
         }
 
-    struct Auto *a = init_car(speed,length,width,start_pos,0,t);
+    struct Auto *a = init_car(speed,width,height,start_pos,0,t);
     list->head = a;
 
     for(int i = 0;i<5;i++){
     
-        struct Auto *b = init_car(speed,length,width,a->x_pos,a->width,t);
+        struct Auto *b = init_car(speed,width,height,a->x_pos,a->width,t);
 
         a->next = b;
         a = b;
@@ -80,11 +91,22 @@ struct LinkedList_Auto* init_car_list(int speed,int length,int width,int start_p
 }
 
 
-// lässt die Autos auf einer Straße / Boote auf dem Wasser bewegen
-// und ruft die Ausgabe-Funktion auf
-// Es wird 0 zurückgegeben, wenn es keine Kollision moit einem aut gab oder eine Kollision mit einem Boot
-// Sonst wird 1 zurückgegeben und das Spiel wird beendet
-int car_move(SDL_Renderer* renderer,struct Node *n,SDL_Rect *character){
+// Vorbedingung: 
+//      Alle Autos wurden mit init_car(...) erzeugt und entsprechen deren Spezifikation
+//      insbesondere n->autos != NULL
+//      0 <= character->x <= 900,
+//      0 <= character->y y<= 1000
+
+
+// Nachbedingung:
+//      Alle Autos wurden ensprechend ihrer Geschwindigkeit verschoben und gezeichnet
+//      Wenn ein Auto den Bildschirmrand verlassen hat wird dieses gelöscht
+//      und deren reservierter Speicher freigegeben.
+//      Genau dann wird ein neues Auto ans Ende der LinkedList mit init_car(...) erzeugt
+//      Im Falle einer ungültigen Kollision (mit einem auto oder Zug), wird 1 zurück gegeben
+//      Im Falle einer gültigen Kollision (mit einer Münze oder Boot), wird 0 zurück gegeben
+//      Wenn sich der Spieler auf einer Wasserreihe befindet, dann ist diese gültige Kollision zwingend. 
+int car_move(SDL_Renderer* renderer,struct Row *n,SDL_Rect *character){
 
     int length;
     int height;
@@ -97,6 +119,7 @@ int car_move(SDL_Renderer* renderer,struct Node *n,SDL_Rect *character){
     enum vehicle newAutotype;
 
     if ((cur->x_pos < -(cur-> width) && n->speed < 0) || (cur->x_pos > SCREEN_WIDTH && n->speed > 0)){
+        
         struct Auto *temp = cur;
         cur = cur->next;
         list->head = cur;
@@ -106,21 +129,27 @@ int car_move(SDL_Renderer* renderer,struct Node *n,SDL_Rect *character){
     }
 
     while (true){
-
         if (n->y_pos <=character->y && character->y <=n->y_pos + 100 && kollision(character,cur->x_pos,cur->width)){
+            
             if (cur->type == car || cur->type == train){
                 return(1);
+
             }else if (cur -> type == boat){
                 onBoat = true;
+
             }else if(cur ->type == coin){
+
                 playerscore += 5;
                 playerhighscore += 5;
+
 				paste_score (renderer);
                 cur->type = coin_gathered;
             }
         }
+
         cur->x_pos += n->speed;
         paste_auto(renderer,cur->x_pos,n->y_pos,cur->width,cur->height,cur->type);
+        
         if (cur->next == NULL){
             break;
         }
@@ -132,9 +161,11 @@ int car_move(SDL_Renderer* renderer,struct Node *n,SDL_Rect *character){
         if (n->row_type == traintrack){
             length = 300;
             height = 60;
+
         }else if (n->row_type == streetSingle || n->row_type == streetMultiple){
             length = 150;
             height = 60;
+
         }else{
             length = 200;
             height = 60;
@@ -147,16 +178,17 @@ int car_move(SDL_Renderer* renderer,struct Node *n,SDL_Rect *character){
     if (n->row_type == waterDarkSingle || n->row_type == waterBrightSingle ||
         n->row_type == waterDarkMultiple || n->row_type == waterBrightMultiple){
         return(!onBoat);
+    
     }else{
         return(0);
     }
 }
 
+// Vorbedingung: n->autos != NULL
+
+// Nachbedingung: Der reservierte Speicher von allen Autos und der LinkedList wurde freigegeben
 
-// Wenn eine Straße den Bildschirm verlassen hat,
-// dann wird der Speicher der Autos und der verketteten Listen
-// wieder freiegegeben
-void free_auto(struct Node *n){
+void free_auto(struct Row *n){
     struct LinkedList_Auto *list = n->autos;
     struct Auto *m = list->head;
 
diff --git a/gameLoop.c b/gameLoop.c
index 25ff4abb61f9a48700f6307122f504f9b541ea93..ee4dbb370ac89978f47ade71b05082e2ad906082 100644
--- a/gameLoop.c
+++ b/gameLoop.c
@@ -3,6 +3,11 @@
 #include <stdbool.h>
 
 void gameLoop(enum vehicle theme,SDL_Renderer* renderer, SDL_Window* window) {
+    
+    int input;
+    SDL_Event e;
+    int speed;
+
     // Anfangskoordinaten für den Spieler und dessen Größe
     SDL_Rect player = {
                     .x = 420,
@@ -14,10 +19,7 @@ void gameLoop(enum vehicle theme,SDL_Renderer* renderer, SDL_Window* window) {
     playerhighscore = 0;
 
     bool run = true;
-    int input;
-    SDL_Event e;
     bool start_game = false;
-    // Character
     SDL_Rect *character = &player;
     
     // erzeuge verkettete Liste, welche die Karte speichert
@@ -25,26 +27,26 @@ void gameLoop(enum vehicle theme,SDL_Renderer* renderer, SDL_Window* window) {
 
     Uint32 start = SDL_GetTicks();
 
-    move_map(theme,0,list,character,renderer);
+    //move_map(theme,0,list,character,renderer);
     // Menü
 
     //start_screen(theme,character, list, renderer);
     start_game = false;
     while (run) {
+
         while (SDL_PollEvent(&e)) {
+
             switch (e.type){
-                case SDL_QUIT:				// Fenster Schließen 
-                      run = false;
-                      break;
-                case SDL_KEYDOWN:				// Keystroke ?
+
+                case SDL_QUIT:// Fenster Schließen 
+                      exit(0);
+
+                case SDL_KEYDOWN:
                       input = e.key.keysym.scancode;
-                      //if (start_game != true) {
-                        //start_screen(renderer);
-                        //start_game = true; // könnte man auch später für das Menü benutzten
-                      //}
                       start_game = true;
                       jump(input, character);
                       break;
+                      
                 default: 
                       break; 
             }
@@ -52,7 +54,6 @@ void gameLoop(enum vehicle theme,SDL_Renderer* renderer, SDL_Window* window) {
 
         // Wenn der Spieler weit oben ist, dann soll sich 
         // die Kammera schneller bewegen
-        int speed;
         if (run){
             if (!start_game){
               speed = 0;
@@ -62,11 +63,13 @@ void gameLoop(enum vehicle theme,SDL_Renderer* renderer, SDL_Window* window) {
             else{
               speed = 1;
             }
+
             SDL_RenderClear(renderer);
+            // Die Map wird bewegt und gezeichnet (inklusive Fahrzeuge)
        	    run = !move_map(theme,speed,list,character,renderer);
         }
 
-        //update Character
+        //Position des Spielers wird aktualisiert und gezeichnet
         update_character(speed,character, renderer);
         paste_score (renderer);
 
diff --git a/header.h b/header.h
index a017c1d3b59438661422d3a4f0d849fdba2db0f4..27ba6f856ab53f3b9e32440fc289075b62b5fc11 100644
--- a/header.h
+++ b/header.h
@@ -38,9 +38,9 @@ struct Auto{
 
 
 //Declaration of Structs
-struct Node{
+struct Row{
     enum row row_type;
-    struct Node *next;
+    struct Row *next;
     int y_pos;
     int speed;
     struct LinkedList_Auto *autos;
@@ -48,7 +48,7 @@ struct Node{
 };
 
 struct LinkedList{
-    struct Node *head;
+    struct Row *head;
 };
 
 struct LinkedList_Auto{
@@ -59,7 +59,7 @@ struct LinkedList_Auto{
 //Declarations of Functions
 enum vehicle startscreen(SDL_Renderer*,SDL_Window*);
 
-struct Node* init_row(struct Node*, SDL_Rect *player);
+struct Row* init_row(struct Row*, SDL_Rect *player);
 struct LinkedList* init_map(enum vehicle,SDL_Rect *player);
 int move_map(enum vehicle,int,struct LinkedList*,SDL_Rect*,SDL_Renderer*);
 int paste_row(SDL_Renderer*, int , enum row);
@@ -67,13 +67,13 @@ void free_map(struct LinkedList*);
 int paste_score (SDL_Renderer*);
 //int charac_init(SDL_Renderer*);
 struct LinkedList_Auto* init_car_list( int, int,int,int,enum vehicle);
-struct Node* grass(bool,bool,int);
-struct Node* street(bool,int);
-struct Node* track(int);
-struct Node* water(bool,bool,int);
+struct Row* grass(bool,bool,int);
+struct Row* street(bool,int);
+struct Row* track(int);
+struct Row* water(bool,bool,int);
 int paste_auto (SDL_Renderer*, int, int, int, int,enum vehicle);
-int car_move(SDL_Renderer* ,struct Node*,SDL_Rect*);
-void free_auto(struct Node*);
+int car_move(SDL_Renderer* ,struct Row*,SDL_Rect*);
+void free_auto(struct Row*);
 bool kollision(SDL_Rect*,int,int);
 //SDL_Rect charac_init(SDL_Renderer*);
 void jump(int, SDL_Rect*);
diff --git a/init.c b/init.c
index fd2395878c095436a0eb0942a982d933cd0985ae..31af2c7289842beb7a97eee633d423dcd7b43e8a 100644
--- a/init.c
+++ b/init.c
@@ -45,7 +45,7 @@ int init(SDL_Renderer* renderer) {
 
     if ((IMG_Init(flags) != flags)) {
         SDL_Log("SDL_Image konnte nicht initialisiert werden! SDL_image Error: %s\n",IMG_GetError());
-        return(-1);
+        return(1);
     }
 
     if (img_grassDark == NULL || img_grassBright == NULL || img_streetSingle == NULL || img_streetMultiple == NULL || 
@@ -53,10 +53,10 @@ int init(SDL_Renderer* renderer) {
         img_waterDarkMultiple == NULL || img_finishlineBright == NULL || img_finishlineDark == NULL ||
         img_coin == NULL) {
         SDL_Log("Bild konnte nicht geladen werden! SDL_image Error: %s\n",IMG_GetError());
-        return(-1);
+        return(1);
     }
 
-    return 0;
+    return(0);
 }
 
 
diff --git a/main.c b/main.c
index 101c53dfbff65ecc4a6c55c29fcfaf57d56ce447..15a1bb4a8ce3fe0b1ccb99dd3ad20cd8e323d00f 100644
--- a/main.c
+++ b/main.c
@@ -34,19 +34,24 @@ int main(void) {
         return(-1);
     }
 
-    init(renderer);
+    //Initialisierung der Bilder
+    if (init(renderer)){
+        printf("Fehler beim laden der Bilder");
+        return(-1);
+    }
+
     enum vehicle theme; 
-    
-    bool changeMap = true;
+    bool change_Map = true;
+
     while (true) {
-        if (changeMap){
+        if (change_Map){
             theme = startscreen(renderer,window);
         }
         if (theme == (-1)){ // Spiel wurde gschlossen oder es kam zu einem Fehler
             break;
         }
         gameLoop(theme,renderer, window);
-        changeMap = end_screen(0,renderer);
+        change_Map = end_screen(0,renderer);
 
     }
     
diff --git a/map.c b/map.c
index 068e03f0f661560faa837c2fa048a98f3fe38acc..6366aff9210b31776b47424d1c3f0724c2705a74 100644
--- a/map.c
+++ b/map.c
@@ -2,9 +2,16 @@
 #include <stdbool.h>
 #include <stdlib.h>
 
-// Rückgabe einer einfach verkettete Liste, welche 11 Elemente enthält
-// Jedes Element entspricht einer Reihe
-// Jedes Element enthält die Informationen über dessen Position(y_pos) und Typ(row_type) 
+// Vorbedingung: 0 <= character->y <= 900, 0 <= character->x <= 1000
+// Kodierung von enum vehicle:
+//               coin => zufällige Generierung
+//               car  => Straßen werden generiert
+//               train => Gleise werden generiert
+//               boat => Wasser wird generiert
+
+// Nachbedingung: 
+//      Rückgabe einer einfach verkettete Liste, welche 11 Reihen enthält
+//      Die Reihen wurden ebenfalls initialisiert
 
 // WICHTIG: Bei jeder Reihe OHNE Autos muss der Wert autos auf NULL
 // gesetzt werde, da es sonts zu Fehlern kommt
@@ -14,16 +21,16 @@ struct LinkedList* init_map(enum vehicle theme,SDL_Rect* character){
     struct LinkedList *list = malloc(sizeof(*list));
     
     // die 2 ersten Reihen sind immer Grass
-    struct Node *n = grass(true,false,900); //helles Gras mit y = 900
+    struct Row *n = grass(true,false,900); //helles Gras mit y = 900
     list->head = n;
 
-    struct Node *m = grass(false,false,n->y_pos - 100);
+    struct Row *m = grass(false,false,n->y_pos - 100);
     n->next = m;
     n = m;
 
     // erzeuge 9 weitere Knoten mit zufälligem Typ
     for(int i = 0;i<9;i++){
-        struct Node *m;
+        struct Row *m;
         if (theme == coin){
             m = init_row(n, character);
         }else if(theme == car){
@@ -44,22 +51,35 @@ struct LinkedList* init_map(enum vehicle theme,SDL_Rect* character){
 }
 
 
-// Funktion nimmt die LinkedList und verschiebt alle Reihen um delta_y Pixel nach unten
-// Wenn die unterste Reihe aus dem Fenster geschoben wurde, dann wird diese gelöscht
-// Gleichzeitig wird ein neue Reihe erzeugt, welche am Ende der verketteten Liste eingefügt wird
+// Vorbedingung: 
+//      delta_y mit 0 <= delta_y <= 10,
+//      0 <= character->x <= 900,
+//      0 <= character->y y<= 1000
+//      LinkedList enthält 11 Elemente
+
+// Kodierung von enum vehicle:
+//               coin => zufällige Reihe wird, wenn ein Reihe gelöscht wurde
+//               car  => eine Straße wird generiert, wenn ein Reihe gelöscht wurde
+//               train => ein Gleis wird generiert, wenn ein Reihe gelöscht wurde
+//               boat => ein Wasser wird generiert, wenn ein Reihe gelöscht wurde
+//                                                
+// Nachbedingung: 
+//      Der Wert y_pos jeder Reihe wird um z erhöht
+//      Eine Reihe wurde gelöscht, wenn y_pos >= 1000 
+//      + neue Reihe mit Typ theme wurde an das Ende der Linked Ende hinzugefügt
 
 int move_map(enum vehicle theme,int delta_y,struct LinkedList *list,SDL_Rect *character, SDL_Renderer* renderer){
 
-    struct Node *cur = list->head;
-    bool newNode = false;
+    struct Row *cur = list->head;
+    bool newRow = false;
 
-    // Wenn eine reihe den Bildschirm verlässt, dann wird sie gelöscht
-    if (cur->y_pos >=999){
+    // Lösche Reihe
+    if (cur->y_pos >=1000){
 
         list->head = cur->next;
-        struct Node *temp = cur;
+        struct Row *temp = cur;
         cur = cur->next;
-        newNode = true;
+        newRow = true;
 
         // mögliche Autos auf der Reihe werden auch gelöscht 
         // und deren Speicher freigegeben
@@ -92,8 +112,8 @@ int move_map(enum vehicle theme,int delta_y,struct LinkedList *list,SDL_Rect *ch
     
     // Füge eine neue Reihe hinzu, wenn ein Reihe gelöscht wurde
     // Das Schachbrettmuster bleibt erhalten
-    if (newNode){
-        struct Node *n;
+    if (newRow){
+        struct Row *n;
         if (theme == car){
             n = street(false, cur->y_pos - 100);
         }else if (theme == train){
@@ -113,10 +133,14 @@ int move_map(enum vehicle theme,int delta_y,struct LinkedList *list,SDL_Rect *ch
     return(0);
 }
 
+// Vorbedingung: /
+
+// Nachbedingung: Der reservierte Speicher der gesamten LinkedList/Map wurde freigegeben
+
 void free_map(struct LinkedList *list){
-    struct Node *cur = list->head;
+    struct Row *cur = list->head;
     while (cur != NULL){
-        struct Node *temp = cur;
+        struct Row *temp = cur;
         cur = cur->next;
         if (temp->autos != NULL){
             free_auto(temp);
diff --git a/menu.c b/menu.c
index caa5d1b690d55873704158b167a6890231a30329..975cde57daf7b1ab58eea8fff1139b343a995787 100644
--- a/menu.c
+++ b/menu.c
@@ -126,7 +126,7 @@ bool end_screen(int playerhighscore, SDL_Renderer* renderer) {
     return(-1);
   }
 
-  SDL_Surface* surfaceMessage = TTF_RenderText_Blended_Wrapped (font, "Nochmal?", (SDL_Color) {0, 0, 0, 255}, 200);
+  SDL_Surface* surfaceMessage = TTF_RenderText_Blended_Wrapped (font, "Nochmal? (y)/(n)", (SDL_Color) {0, 0, 0, 255}, 200);
     
   if (surfaceMessage == NULL) 
     printf("Text Surface loading failed: %s\n", TTF_GetError());
@@ -148,8 +148,7 @@ bool end_screen(int playerhighscore, SDL_Renderer* renderer) {
     while (SDL_PollEvent(&e)) {
       switch (e.type) {
       case SDL_QUIT:
-          quit = true;
-          break;
+          exit(0);
       case SDL_KEYDOWN:
           input = e.key.keysym.scancode;
           
diff --git a/menu2.c b/menu2.c
index 02b41bfbdda6f2a278cd5eed0aa056cf625f7e20..a2d82c8a88f948963ca49c8d2875efe5009f4bb5 100644
--- a/menu2.c
+++ b/menu2.c
@@ -5,6 +5,11 @@
 #include <SDL_ttf.h>
 #include <stdio.h>
 
+
+
+// Die Funktion zeigt die möglichen Reihen des Spiels
+// Wenn man auf eine Reihe klickt, dann wir das Spiel mit einer bestimmten 
+// Konfiguration gestartet
 enum vehicle startscreen(SDL_Renderer* renderer,SDL_Window *window){
 
     if (TTF_Init() == -1) {
@@ -38,6 +43,7 @@ enum vehicle startscreen(SDL_Renderer* renderer,SDL_Window *window){
     SDL_Event event;
 
     while (1){
+
         paste_row(renderer, 900, waterBrightMultiple);
         paste_row(renderer, 800, waterDarkMultiple);
         paste_row(renderer,700,traintrack);
@@ -46,29 +52,36 @@ enum vehicle startscreen(SDL_Renderer* renderer,SDL_Window *window){
         paste_row(renderer,400, streetMultiple);
         paste_row(renderer,300, grassBright);
         paste_row(renderer,200, grassDark);
+
         while (SDL_PollEvent(&event)) {
+
             switch (event.type) {
+
             case SDL_QUIT:
                 return(-1);
+
             case SDL_MOUSEBUTTONDOWN:
                 if (200<=event.button.y && event.button.y<=400){
                     SDL_FreeSurface(surfaceMessage);
                     SDL_DestroyTexture(Message);
                     return(coin);
+
                 }else if(400<=event.button.y && event.button.y<=600){
                     SDL_FreeSurface(surfaceMessage);
                     SDL_DestroyTexture(Message);
                     return(car);
+
                 }else if(600<=event.button.y && event.button.y<=800){
                     SDL_FreeSurface(surfaceMessage);
                     SDL_DestroyTexture(Message);
                     return(train);
-                }  else if(800<=event.button.y && event.button.y<=1000){
+
+                }else if(800<=event.button.y && event.button.y<=1000){
                     SDL_FreeSurface(surfaceMessage);
                     SDL_DestroyTexture(Message);
                     return(boat);
                 }    
-                }
+            }
         }
         if (SDL_SetRenderDrawColor(renderer,0,0,0,0) !=0) {
             SDL_Log("Farbe konnte nicht gesetzt werden! SDL_Error %s\n",SDL_GetError());
diff --git a/rows.c b/rows.c
index b9445871a53c4c631da44c70f3325cdee2ced87d..35a20a50122a9825161dea8968e101cb071ac1cc 100644
--- a/rows.c
+++ b/rows.c
@@ -2,9 +2,11 @@
 #include <stdlib.h>
 #include <stdbool.h>
 
-// Initialisiert eine Gras-Reihe
-struct Node* grass(bool dark,bool gold,int y_pos){
-    struct Node *n = malloc(sizeof(*n));
+//Vorbedingung: -100<=y_pos<=1000
+
+//Nachbedinung: eine Gras-Reihe wurde Initialisiert
+struct Row* grass(bool dark,bool gold,int y_pos){
+    struct Row *n = malloc(sizeof(*n));
     if (n==NULL){
         perror("kein Speicherplatz");
     }
@@ -27,9 +29,11 @@ struct Node* grass(bool dark,bool gold,int y_pos){
     return(n);
 }
 
-// Initialisiert eine Straßen-Reihe
-struct Node* street(bool first,int y_pos){
-    struct Node *n = malloc(sizeof(*n));
+//Vorbedingung: -100<=y_pos<=1000
+
+//Nachbedinung: eine Straßen-Reihe wurde Initialisiert
+struct Row* street(bool first,int y_pos){
+    struct Row *n = malloc(sizeof(*n));
     if (n==NULL){
         perror("kein Speicherplatz");
     }
@@ -41,34 +45,37 @@ struct Node* street(bool first,int y_pos){
     }
 
     n->y_pos = y_pos;
-    int length = 150;
-    int width = 60;
+    int width = 150;
+    int height = 60;
 
     n->speed =  (((rand()%2) * 2) -1) * ((rand()%2)+1);
-    n->autos = init_car_list(n->speed,length,width,(900-n->speed) % 900,car);
+    n->autos = init_car_list(n->speed,width,height,(900-n->speed) % 900,car);
     return(n);
 }
+//Vorbedingung: -100<=y_pos<=1000
 
-// Initialisiert eine Zug-Reihe
-struct Node* track(int y_pos){
-    struct Node *n = malloc(sizeof(*n));
+//Nachbedinung: Initialisiert eine Zug-Reihe
+struct Row* track(int y_pos){
+    struct Row *n = malloc(sizeof(*n));
     if (n==NULL){
         perror("kein Speicherplatz");
     }
 
     n->y_pos = y_pos;
     n->row_type = traintrack;
-    int length = 300;
-    int width = 60;
+    int width = 300;
+    int height = 60;
 
     n->speed = 6 *(((rand()%2)*2)-1);
-    n->autos = init_car_list(n->speed,length,width,(900-n->speed) % 900,train);
+    n->autos = init_car_list(n->speed,width,height,(900-n->speed) % 900,train);
     return(n);
 }
 
-// Initialisiert eine Fluss-Reihe
-struct Node* water(bool first,bool dark,int y_pos){
-    struct Node *n = malloc(sizeof(*n));
+// Vorbedingung: -100<=y_pos<=1000
+
+// Nachbedingung: Initialisiert eine Fluss-Reihe
+struct Row* water(bool first,bool dark,int y_pos){
+    struct Row *n = malloc(sizeof(*n));
     if (n==NULL){
         perror("kein Speicherplatz");
     }
@@ -88,22 +95,24 @@ struct Node* water(bool first,bool dark,int y_pos){
     }
 
     n->y_pos = y_pos;
-    int length = 200;
-    int width = 60;
+    int width = 200;
+    int length = 60;
 
     n->speed = 2 *(((rand()%2)*2)-1);
-    n->autos = init_car_list(n->speed,length,width,(900-n->speed)%900,boat);
+    n->autos = init_car_list(n->speed,width,length,(900-n->speed)%900,boat);
 
     return(n);
 }
 
+// Vorbedingung: 0 <= character->x <= 900,
+//               0 <= character->y y<= 1000
 
+// Nachbedingung: Initalisert alle Werte für eine neu erzeugte Reihe
 
-// Initalisert alle Werte für eine neu erzeugte Reihe
 // WICHTIG: Bei jeder Reihe OHNE Autos muss der Wert autos auf NULL
 // gesetzt werde, da es sonst zu Fehlern kommt
-struct Node* init_row(struct Node *m, SDL_Rect *character){
-    struct Node *n;
+struct Row* init_row(struct Row *m, SDL_Rect *character){
+    struct Row *n;
     int p;
 
     // Ziellinie erscheint alle 100 Punkte