RainbowTeam / Mbed 2 deprecated ProjectTheseus

Dependencies:   mbed

Revision:
5:695c5531f65e
Parent:
4:aff0722b4e50
Child:
6:a1fd0f1374e6
--- a/RouteCalculation.cpp	Sat Apr 28 12:09:27 2018 +0000
+++ b/RouteCalculation.cpp	Sun Apr 29 11:48:33 2018 +0000
@@ -99,21 +99,21 @@
     //-----------------------------------------------------------------------
     
     if (map[X-1][ Y-1] == 0){
-        route[actionIndex][TYPE] = PLACETURN90;
+        route[actionIndex] = PLACETURN90;
         direction = 1;
     }else{
-        route[actionIndex][TYPE] = FULLDRIVE;
+        route[actionIndex] = FULLDRIVE;
         direction = 4;
     }
     
-    if(route[actionIndex][TYPE] == FULLDRIVE){
+    if(route[actionIndex] == FULLDRIVE){
         while(map[X-1][Y] == 0){
             if(X >= 1 | X <= 19){
                 X = X -2;
                 i = i + 1;
             }
         }   
-        route[actionIndex][LENGHT] = i;
+        route[actionIndex+1] = i;
         actionIndex = actionIndex +1;
         
     }
@@ -138,7 +138,7 @@
             }
             break;
             
-            case 3: while(map[X][Y] == 0{ // Gegen unten
+            case 3: while(map[X][Y] == 0){ // Gegen unten
                         if (Y >= 1 | Y <= 7){
                             Y = Y + 2;
                             i = i + 1;
@@ -154,80 +154,80 @@
             }
             break;  
         }
-        actionIndex = actionIndex + 1; // Zur nächstesten Aktion
-        char *route = (char *)realloc(2*sizeof(char)); // Speicher für neue Aktion initialisieren
-        route[actionIndex][TYPE] = FULLDRIVE; // Fahrmodus auf geradeausfahren
-        route[actionIndex][LENGHT] = i; // Länge der Strecke eintragen
+        actionIndex = actionIndex + 2; // Zur nächstesten Aktion
+        route = (char *)realloc(route,(actionIndex+2)*sizeof(char)); // Speicher für neue Aktion initialisieren
+        route[actionIndex] = FULLDRIVE; // Fahrmodus auf geradeausfahren
+        route[actionIndex+1] = i; // Länge der Strecke eintragen
         
     
     //  -------------------------------------------------------------------------------------------  Drehungen fahren
         switch(direction){
             case 1: // Roboter gegen oben ausgerichtet
                     if(map[X][Y-1] == 0){ // gegen Rechts abbiegen
-                    actionIndex = actionIndex + 1; // Zur nächstesten Aktion
-                    char *route = (char*)realloc(2*sizeof(char)); // Speicher für neue Aktion initialisieren
-                    route[actionIndex][ TYPE] = TURNRIGHT;
-                    route[actionIndex][ LENGHT] = LEER;
+                    actionIndex = actionIndex + 2; // Zur nächstesten Aktion
+                    char *route = (char*)realloc(route,(actionIndex+2)*sizeof(char)); // Speicher für neue Aktion initialisieren
+                    route[actionIndex] = TURNRIGHT;
+                    route[actionIndex+1] = LEER;
                     direction = directionControl(DREHUNG_RECHTS, direction);
                     }
                     if(map[X-1][Y] == 0){ // gegen Links abbiegen
-                    actionIndex = actionIndex + 1;
-                    char *route = (char *)realloc(2*sizeof(char)); 
-                    route[actionIndex][ TYPE] = TURNLEFT;
-                    route[actionIndex][ LENGHT] = LEER;
+                    actionIndex = actionIndex + 2;
+                    route = (char *)realloc(route,(actionIndex+2)*sizeof(char)); 
+                    route[actionIndex]= TURNLEFT;
+                    route[actionIndex+1] = LEER;
                     direction = directionControl(DREHUNG_LINKS, direction);
                     }
             case 2: // Roboter gegen rechts ausgerichtet
                     if(map[X-1][Y-1] == 0){ // gegen Oben abbiegen
-                    actionIndex = actionIndex + 1;
-                    char *route = (char *)realloc(2*sizeof(char)); 
-                    route[actionIndex][ TYPE] = TURNLEFT;
-                    route[actionIndex][ LENGHT] = LEER;
+                    actionIndex = actionIndex + 2;
+                    route = (char *)realloc(route,(actionIndex+2)*sizeof(char)); 
+                    route[actionIndex]= TURNLEFT;
+                    route[actionIndex+1] = LEER;
                     direction = directionControl(DREHUNG_LINKS, direction);
                     }
                     if(map[X][Y] == 0){ // gegen Unten abbiegen
-                    actionIndex = actionIndex + 1;
-                    char *route = (char *)realloc(2*sizeof(char)); 
-                    route[actionIndex][ TYPE] = TURNRIGHT;
-                    route[actionIndex][ LENGHT] = LEER;
+                    actionIndex = actionIndex + 2;
+                    route = (char *)realloc(route,(actionIndex+2)*sizeof(char)); 
+                    route[actionIndex] = TURNRIGHT;
+                    route[actionIndex+1] = LEER;
                     direction = directionControl(DREHUNG_RECHTS, direction);
                     }           
             case 3: // Roboter gegen Unten ausgerichtet (Seitenverkehrt)
                     if(map[X][Y-1] == 0){ // gegen Rechts abbiegen
-                    actionIndex = actionIndex + 1;
-                    char *route = (char *)realloc(2*sizeof(char)); 
-                    route[actionIndex][ TYPE] = TURNLEFT;
-                    route[actionIndex][ LENGHT] = LEER;
+                    actionIndex = actionIndex + 2;
+                    route = (char *)realloc(route,(actionIndex+2)*sizeof(char)); 
+                    route[actionIndex] = TURNLEFT;
+                    route[actionIndex+1] = LEER;
                     direction = directionControl(DREHUNG_LINKS, direction);
                     }
                     if(map[X-1][Y] == 0){ // gegen Links abbiegen 
-                    actionIndex = actionIndex + 1;
-                    char *route = (char *)realloc(2*sizeof(char)); 
-                    route[actionIndex][ TYPE] = TURNRIGHT;
-                    route[actionIndex][ LENGHT] = LEER;
+                    actionIndex = actionIndex + 2;
+                    route = (char *)realloc(route,(actionIndex+2)*sizeof(char)); 
+                    route[actionIndex] = TURNRIGHT;
+                    route[actionIndex+1] = LEER;
                     direction = directionControl(DREHUNG_RECHTS, direction);
                     }
             case 4: // Roboter gegen links ausgerichtet
                     if(map[X-1][Y-1] == 0){ // gegen oben abbiegen
-                    actionIndex = actionIndex + 1;
-                    char *route = (char *)realloc(2*sizeof(char)); 
-                    route[actionIndex][ TYPE] = TURNRIGHT;
-                    route[actionIndex][ LENGHT] = LEER;
+                    actionIndex = actionIndex + 2;
+                    route = (char *)realloc(route,(actionIndex+2)*sizeof(char)); 
+                    route[actionIndex] = TURNRIGHT;
+                    route[actionIndex+1] = LEER;
                     direction = directionControl(DREHUNG_RECHTS, direction);
                     }
                     if(map[X][Y] == 0){ // gegen unten abbiegen
-                    actionIndex = actionIndex + 1;
-                    char *route = (char *)realloc(2*sizeof(char)); 
-                    route[actionIndex][ TYPE] = TURNLEFT;
-                    
+                    actionIndex = actionIndex + 2;
+                    route = (char *)realloc(route,(actionIndex+2)*sizeof(char)); 
+                    route[actionIndex] = TURNLEFT;
+                    route[actionIndex+1] = LEER;
                     direction = directionControl(DREHUNG_LINKS, direction);
                     }                       
             }
             if (map[X][Y] == 100){
-            char *route = (char *)realloc(2*sizeof(char)); 
-            actionIndex = actionIndex + 1;
-            route[actionIndex][ TYPE] = ZIEL;
-            route[actionIndex][ LENGHT] = ZIEL;
+            route = (char *)realloc(route,(actionIndex+2)*sizeof(char)); 
+            actionIndex = actionIndex + 2;
+            route[actionIndex] = ZIEL;
+            route[actionIndex+1] = ZIEL;
             }