RainbowTeam / Mbed 2 deprecated ProjectTheseus

Dependencies:   mbed

Committer:
Alexander_Zuest
Date:
Wed May 23 11:50:58 2018 +0000
Revision:
14:0caa7b93af7a
Parent:
6:a1fd0f1374e6
50% Chance for working Routecalculation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Alexander_Zuest 2:cb6bae534500 1 #include "mbed.h"
Alexander_Zuest 2:cb6bae534500 2 #include "Controller.h"
Alexander_Zuest 2:cb6bae534500 3 #include "MotorDriver.h"
Alexander_Zuest 2:cb6bae534500 4 #include "ReadFinalLine.h"
Alexander_Zuest 2:cb6bae534500 5 #include "ReadSensor.h"
Alexander_Zuest 2:cb6bae534500 6 #include "Mapping.h"
Alexander_Zuest 2:cb6bae534500 7 #include "AutoDrive.h"
Alexander_Zuest 2:cb6bae534500 8 #include "RouteCalculation.h"
Alexander_Zuest 6:a1fd0f1374e6 9 #include "SDFileSystem.h"
Alexander_Zuest 14:0caa7b93af7a 10 #include "FATFileSystem.h"
Alexander_Zuest 2:cb6bae534500 11
Alexander_Zuest 0:4a0b987c5c94 12 // Routenberechnung
Alexander_Zuest 14:0caa7b93af7a 13 // rückgabe 1d-Array route
Alexander_Zuest 14:0caa7b93af7a 14
Alexander_Zuest 14:0caa7b93af7a 15 //SDFileSystem sdr(PB_5, PB_4, PB_3, PB_10, "sdr"); //mosi, miso, sclk, cs
Alexander_Zuest 14:0caa7b93af7a 16
Alexander_Zuest 0:4a0b987c5c94 17
Alexander_Zuest 0:4a0b987c5c94 18 /* Funktion berechnet neue Ausrichtung von Roboter.
Alexander_Zuest 0:4a0b987c5c94 19 int turnDirection: Codierte Richtung in welche der Roboter drehen soll. (1 = Links, 2 = Rechts)
Alexander_Zuest 0:4a0b987c5c94 20 int currentDirection: Codierte momentane Ausrichtung
Alexander_Zuest 0:4a0b987c5c94 21
Alexander_Zuest 14:0caa7b93af7a 22 Return: Neue Momentanrichtung
Alexander_Zuest 0:4a0b987c5c94 23 */
Alexander_Zuest 0:4a0b987c5c94 24 int directionControl(int turnDirection,int currentDirection){ // Links = 1, Rechts= 2
Alexander_Zuest 4:aff0722b4e50 25 if (turnDirection == 1){ //Drehung nach Links
Alexander_Zuest 0:4a0b987c5c94 26 currentDirection = currentDirection -1;
Alexander_Zuest 14:0caa7b93af7a 27 if(currentDirection <= 0){
Alexander_Zuest 14:0caa7b93af7a 28 printf("direction exception links\n");
Alexander_Zuest 0:4a0b987c5c94 29 currentDirection = 4;
Alexander_Zuest 0:4a0b987c5c94 30 }
Alexander_Zuest 0:4a0b987c5c94 31 }
Alexander_Zuest 4:aff0722b4e50 32 if (turnDirection == 2){ //Drehung nach Rechts
Alexander_Zuest 0:4a0b987c5c94 33 currentDirection = currentDirection +1;
Alexander_Zuest 14:0caa7b93af7a 34 if(currentDirection >= 5){
Alexander_Zuest 14:0caa7b93af7a 35 printf("direction exception rechts\n");
Alexander_Zuest 0:4a0b987c5c94 36 currentDirection = 1;
Alexander_Zuest 0:4a0b987c5c94 37 }
Alexander_Zuest 0:4a0b987c5c94 38 }
Alexander_Zuest 0:4a0b987c5c94 39 return currentDirection;
Alexander_Zuest 0:4a0b987c5c94 40 }
Alexander_Zuest 0:4a0b987c5c94 41
Alexander_Zuest 0:4a0b987c5c94 42 /* Funktion zur Berechnung der Abfahrrute
Alexander_Zuest 0:4a0b987c5c94 43 Berechnet aus einer 20x10 Matrix die schnellste route zum Zielpunkt.
Alexander_Zuest 0:4a0b987c5c94 44
Alexander_Zuest 14:0caa7b93af7a 45 Return: Zeiger auf 2D-Array mit 2 Teilen und Anzahl Aktisonen Spalten. welcher von AUtoDrive() zum abfahren des gespeicherten Wegs benötigt wird.
Alexander_Zuest 0:4a0b987c5c94 46 */
Alexander_Zuest 14:0caa7b93af7a 47 char *RouteCalculation(int (*map)[10]){
Alexander_Zuest 14:0caa7b93af7a 48
Alexander_Zuest 14:0caa7b93af7a 49 printf("Routenberechnung wird gestartet...\n");
Alexander_Zuest 14:0caa7b93af7a 50 //int map[20][10]; // Wird mit Werten des Mapping() gefüllt
Alexander_Zuest 14:0caa7b93af7a 51 int X = 19;
Alexander_Zuest 0:4a0b987c5c94 52 int Y = 9;
Alexander_Zuest 0:4a0b987c5c94 53 int direction;
Alexander_Zuest 0:4a0b987c5c94 54 int actionIndex; // Number des Befehls
Alexander_Zuest 4:aff0722b4e50 55
Alexander_Zuest 4:aff0722b4e50 56 //char **route;
Alexander_Zuest 14:0caa7b93af7a 57 char *route = (char *)malloc(2*sizeof(char)); // Speicher muss alloziert werden!!
Alexander_Zuest 4:aff0722b4e50 58
Alexander_Zuest 14:0caa7b93af7a 59
Alexander_Zuest 0:4a0b987c5c94 60 // Pos in route[X,0]
Alexander_Zuest 0:4a0b987c5c94 61
Alexander_Zuest 14:0caa7b93af7a 62 const char ZIEL = 5;
Alexander_Zuest 4:aff0722b4e50 63 const char FULLDRIVE = 1;
Alexander_Zuest 4:aff0722b4e50 64 const char TURNRIGHT = 2;
Alexander_Zuest 4:aff0722b4e50 65 const char TURNLEFT = 3;
Alexander_Zuest 4:aff0722b4e50 66 const char PLACETURN90 = 4;
Alexander_Zuest 14:0caa7b93af7a 67 const char LEER = 0;
Alexander_Zuest 14:0caa7b93af7a 68
Alexander_Zuest 14:0caa7b93af7a 69 int e; //Zähler
Alexander_Zuest 0:4a0b987c5c94 70
Alexander_Zuest 0:4a0b987c5c94 71 // Pos in route[0,Y]
Alexander_Zuest 0:4a0b987c5c94 72
Alexander_Zuest 0:4a0b987c5c94 73
Alexander_Zuest 0:4a0b987c5c94 74 // Codierung Richtungenänderungen
Alexander_Zuest 4:aff0722b4e50 75 const int DREHUNG_LINKS = 1;
Alexander_Zuest 4:aff0722b4e50 76 const int DREHUNG_RECHTS = 2;
Alexander_Zuest 0:4a0b987c5c94 77
Alexander_Zuest 14:0caa7b93af7a 78 actionIndex = 0;
Alexander_Zuest 0:4a0b987c5c94 79 int i = 0;
Alexander_Zuest 14:0caa7b93af7a 80 printf("Variabeln inizialisiert\n");
Alexander_Zuest 0:4a0b987c5c94 81
Alexander_Zuest 0:4a0b987c5c94 82 //-----------------------------------------------------------------------
Alexander_Zuest 0:4a0b987c5c94 83
Alexander_Zuest 14:0caa7b93af7a 84 if (map[X-1][Y-1] == 0){
Alexander_Zuest 5:695c5531f65e 85 route[actionIndex] = PLACETURN90;
Alexander_Zuest 0:4a0b987c5c94 86 direction = 1;
Alexander_Zuest 0:4a0b987c5c94 87 }else{
Alexander_Zuest 5:695c5531f65e 88 route[actionIndex] = FULLDRIVE;
Alexander_Zuest 0:4a0b987c5c94 89 direction = 4;
Alexander_Zuest 0:4a0b987c5c94 90 }
Alexander_Zuest 0:4a0b987c5c94 91
Alexander_Zuest 5:695c5531f65e 92 if(route[actionIndex] == FULLDRIVE){
Alexander_Zuest 4:aff0722b4e50 93 while(map[X-1][Y] == 0){
Alexander_Zuest 14:0caa7b93af7a 94 if(X >= 1 | X <= 17){
Alexander_Zuest 14:0caa7b93af7a 95 X = X - 2;
Alexander_Zuest 0:4a0b987c5c94 96 i = i + 1;
Alexander_Zuest 14:0caa7b93af7a 97 }else if(map[X-1][Y] == -1){X = X + 2;
Alexander_Zuest 14:0caa7b93af7a 98 printf("\n else statement");
Alexander_Zuest 14:0caa7b93af7a 99 map[X-1][Y] = 1;
Alexander_Zuest 0:4a0b987c5c94 100 }
Alexander_Zuest 14:0caa7b93af7a 101 }
Alexander_Zuest 14:0caa7b93af7a 102
Alexander_Zuest 14:0caa7b93af7a 103
Alexander_Zuest 5:695c5531f65e 104 route[actionIndex+1] = i;
Alexander_Zuest 14:0caa7b93af7a 105 actionIndex = actionIndex +2;
Alexander_Zuest 14:0caa7b93af7a 106
Alexander_Zuest 0:4a0b987c5c94 107 }
Alexander_Zuest 14:0caa7b93af7a 108 printf("Aktion %d\n",actionIndex/2);
Alexander_Zuest 14:0caa7b93af7a 109 printf("begin Schlaufe\n");
Alexander_Zuest 0:4a0b987c5c94 110
Alexander_Zuest 4:aff0722b4e50 111 while (map[X][Y] != 100){ // Ziel = Abbruchbedingung
Alexander_Zuest 0:4a0b987c5c94 112 i = 0;
Alexander_Zuest 0:4a0b987c5c94 113 // ------------------------------------------------------------------------------------------- Grade Strecken fahren
Alexander_Zuest 14:0caa7b93af7a 114 printf("Gerade wird kalkuliert...");
Alexander_Zuest 14:0caa7b93af7a 115 switch (direction){
Alexander_Zuest 4:aff0722b4e50 116 case 1: while(map[X-1][Y-1] == 0){ // Gegen oben
Alexander_Zuest 14:0caa7b93af7a 117 if (Y >= 3 | Y <= 7){
Alexander_Zuest 0:4a0b987c5c94 118 Y = Y - 2;
Alexander_Zuest 14:0caa7b93af7a 119 if(map[X-1][Y-1] != -1){
Alexander_Zuest 0:4a0b987c5c94 120 i = i + 1;
Alexander_Zuest 14:0caa7b93af7a 121 }else{Y = Y + 2;
Alexander_Zuest 14:0caa7b93af7a 122 map[X-1][Y-1] = 1;
Alexander_Zuest 14:0caa7b93af7a 123 }
Alexander_Zuest 0:4a0b987c5c94 124 }
Alexander_Zuest 14:0caa7b93af7a 125 }
Alexander_Zuest 14:0caa7b93af7a 126
Alexander_Zuest 14:0caa7b93af7a 127 printf("gegen oben ko X= %d, Y= %d",X,Y);
Alexander_Zuest 0:4a0b987c5c94 128 break;
Alexander_Zuest 0:4a0b987c5c94 129
Alexander_Zuest 4:aff0722b4e50 130 case 2: while(map[X][Y-1] == 0){ // Gegen rechts
Alexander_Zuest 14:0caa7b93af7a 131 if (X >= 3 | X <= 17){
Alexander_Zuest 0:4a0b987c5c94 132 X = X + 2;
Alexander_Zuest 14:0caa7b93af7a 133 if(map[X][Y-1] != -1){
Alexander_Zuest 0:4a0b987c5c94 134 i = i + 1;
Alexander_Zuest 14:0caa7b93af7a 135 }else{X = X - 2;
Alexander_Zuest 14:0caa7b93af7a 136 map[X][Y-1] = 1;
Alexander_Zuest 14:0caa7b93af7a 137 }
Alexander_Zuest 0:4a0b987c5c94 138 }
Alexander_Zuest 0:4a0b987c5c94 139 }
Alexander_Zuest 14:0caa7b93af7a 140 printf("gegen rechts ko X= %d, Y= %d",X,Y);
Alexander_Zuest 0:4a0b987c5c94 141 break;
Alexander_Zuest 0:4a0b987c5c94 142
Alexander_Zuest 5:695c5531f65e 143 case 3: while(map[X][Y] == 0){ // Gegen unten
Alexander_Zuest 14:0caa7b93af7a 144 if (Y >= 3 | Y <= 7){
Alexander_Zuest 0:4a0b987c5c94 145 Y = Y + 2;
Alexander_Zuest 14:0caa7b93af7a 146 if(map[X][Y] != -1){
Alexander_Zuest 0:4a0b987c5c94 147 i = i + 1;
Alexander_Zuest 14:0caa7b93af7a 148 }else{Y = Y - 2;
Alexander_Zuest 14:0caa7b93af7a 149 map[X][Y] = 1;
Alexander_Zuest 14:0caa7b93af7a 150 }
Alexander_Zuest 0:4a0b987c5c94 151 }
Alexander_Zuest 0:4a0b987c5c94 152 }
Alexander_Zuest 14:0caa7b93af7a 153 printf("gegen unten ko X= %d, Y= %d",X,Y);
Alexander_Zuest 0:4a0b987c5c94 154 break;
Alexander_Zuest 0:4a0b987c5c94 155
Alexander_Zuest 14:0caa7b93af7a 156 case 4: while(map[X-1][Y] == 0){ // Gegen links
Alexander_Zuest 14:0caa7b93af7a 157 printf("\n case 4");
Alexander_Zuest 14:0caa7b93af7a 158 if (X >= 3 | X <= 17){
Alexander_Zuest 0:4a0b987c5c94 159 X = X - 2;
Alexander_Zuest 14:0caa7b93af7a 160 if(map[X-1][Y] != -1){
Alexander_Zuest 0:4a0b987c5c94 161 i = i + 1;
Alexander_Zuest 14:0caa7b93af7a 162 }else if(map[X-1][Y] == -1){X = X + 2;
Alexander_Zuest 14:0caa7b93af7a 163 printf("\n else statement");
Alexander_Zuest 14:0caa7b93af7a 164 map[X-1][Y] = 1;
Alexander_Zuest 14:0caa7b93af7a 165 }
Alexander_Zuest 0:4a0b987c5c94 166 }
Alexander_Zuest 0:4a0b987c5c94 167 }
Alexander_Zuest 14:0caa7b93af7a 168 printf("gegen links ko X= %d, Y= %d",X,Y);
Alexander_Zuest 0:4a0b987c5c94 169 break;
Alexander_Zuest 0:4a0b987c5c94 170 }
Alexander_Zuest 14:0caa7b93af7a 171
Alexander_Zuest 5:695c5531f65e 172 actionIndex = actionIndex + 2; // Zur nächstesten Aktion
Alexander_Zuest 14:0caa7b93af7a 173 printf("\nAktion %d\nRichtung %d",actionIndex/2, direction);
Alexander_Zuest 14:0caa7b93af7a 174 route = (char *)realloc(route,(actionIndex+2)*sizeof(char)); // Speicher für neue Aktion initialisieren (+1 weil speicher mind. 1 mal char aber actionIndex start bei 0)
Alexander_Zuest 5:695c5531f65e 175 route[actionIndex] = FULLDRIVE; // Fahrmodus auf geradeausfahren
Alexander_Zuest 5:695c5531f65e 176 route[actionIndex+1] = i; // Länge der Strecke eintragen
Alexander_Zuest 0:4a0b987c5c94 177
Alexander_Zuest 0:4a0b987c5c94 178
Alexander_Zuest 0:4a0b987c5c94 179 // ------------------------------------------------------------------------------------------- Drehungen fahren
Alexander_Zuest 14:0caa7b93af7a 180 printf("Drehung wird kalkuliert...");
Alexander_Zuest 14:0caa7b93af7a 181
Alexander_Zuest 0:4a0b987c5c94 182 switch(direction){
Alexander_Zuest 0:4a0b987c5c94 183 case 1: // Roboter gegen oben ausgerichtet
Alexander_Zuest 4:aff0722b4e50 184 if(map[X][Y-1] == 0){ // gegen Rechts abbiegen
Alexander_Zuest 5:695c5531f65e 185 actionIndex = actionIndex + 2; // Zur nächstesten Aktion
Alexander_Zuest 5:695c5531f65e 186 char *route = (char*)realloc(route,(actionIndex+2)*sizeof(char)); // Speicher für neue Aktion initialisieren
Alexander_Zuest 5:695c5531f65e 187 route[actionIndex] = TURNRIGHT;
Alexander_Zuest 5:695c5531f65e 188 route[actionIndex+1] = LEER;
Alexander_Zuest 0:4a0b987c5c94 189 direction = directionControl(DREHUNG_RECHTS, direction);
Alexander_Zuest 0:4a0b987c5c94 190 }
Alexander_Zuest 14:0caa7b93af7a 191 else{
Alexander_Zuest 4:aff0722b4e50 192 if(map[X-1][Y] == 0){ // gegen Links abbiegen
Alexander_Zuest 5:695c5531f65e 193 actionIndex = actionIndex + 2;
Alexander_Zuest 5:695c5531f65e 194 route = (char *)realloc(route,(actionIndex+2)*sizeof(char));
Alexander_Zuest 5:695c5531f65e 195 route[actionIndex]= TURNLEFT;
Alexander_Zuest 5:695c5531f65e 196 route[actionIndex+1] = LEER;
Alexander_Zuest 0:4a0b987c5c94 197 direction = directionControl(DREHUNG_LINKS, direction);
Alexander_Zuest 0:4a0b987c5c94 198 }
Alexander_Zuest 14:0caa7b93af7a 199 }
Alexander_Zuest 14:0caa7b93af7a 200 break;
Alexander_Zuest 14:0caa7b93af7a 201
Alexander_Zuest 0:4a0b987c5c94 202 case 2: // Roboter gegen rechts ausgerichtet
Alexander_Zuest 4:aff0722b4e50 203 if(map[X-1][Y-1] == 0){ // gegen Oben abbiegen
Alexander_Zuest 5:695c5531f65e 204 actionIndex = actionIndex + 2;
Alexander_Zuest 5:695c5531f65e 205 route = (char *)realloc(route,(actionIndex+2)*sizeof(char));
Alexander_Zuest 5:695c5531f65e 206 route[actionIndex]= TURNLEFT;
Alexander_Zuest 5:695c5531f65e 207 route[actionIndex+1] = LEER;
Alexander_Zuest 0:4a0b987c5c94 208 direction = directionControl(DREHUNG_LINKS, direction);
Alexander_Zuest 14:0caa7b93af7a 209 }else{
Alexander_Zuest 4:aff0722b4e50 210 if(map[X][Y] == 0){ // gegen Unten abbiegen
Alexander_Zuest 5:695c5531f65e 211 actionIndex = actionIndex + 2;
Alexander_Zuest 5:695c5531f65e 212 route = (char *)realloc(route,(actionIndex+2)*sizeof(char));
Alexander_Zuest 5:695c5531f65e 213 route[actionIndex] = TURNRIGHT;
Alexander_Zuest 5:695c5531f65e 214 route[actionIndex+1] = LEER;
Alexander_Zuest 0:4a0b987c5c94 215 direction = directionControl(DREHUNG_RECHTS, direction);
Alexander_Zuest 14:0caa7b93af7a 216 }
Alexander_Zuest 14:0caa7b93af7a 217 }
Alexander_Zuest 14:0caa7b93af7a 218
Alexander_Zuest 14:0caa7b93af7a 219 break;
Alexander_Zuest 14:0caa7b93af7a 220
Alexander_Zuest 0:4a0b987c5c94 221 case 3: // Roboter gegen Unten ausgerichtet (Seitenverkehrt)
Alexander_Zuest 4:aff0722b4e50 222 if(map[X][Y-1] == 0){ // gegen Rechts abbiegen
Alexander_Zuest 5:695c5531f65e 223 actionIndex = actionIndex + 2;
Alexander_Zuest 5:695c5531f65e 224 route = (char *)realloc(route,(actionIndex+2)*sizeof(char));
Alexander_Zuest 5:695c5531f65e 225 route[actionIndex] = TURNLEFT;
Alexander_Zuest 5:695c5531f65e 226 route[actionIndex+1] = LEER;
Alexander_Zuest 0:4a0b987c5c94 227 direction = directionControl(DREHUNG_LINKS, direction);
Alexander_Zuest 14:0caa7b93af7a 228 }else{
Alexander_Zuest 4:aff0722b4e50 229 if(map[X-1][Y] == 0){ // gegen Links abbiegen
Alexander_Zuest 5:695c5531f65e 230 actionIndex = actionIndex + 2;
Alexander_Zuest 5:695c5531f65e 231 route = (char *)realloc(route,(actionIndex+2)*sizeof(char));
Alexander_Zuest 5:695c5531f65e 232 route[actionIndex] = TURNRIGHT;
Alexander_Zuest 5:695c5531f65e 233 route[actionIndex+1] = LEER;
Alexander_Zuest 0:4a0b987c5c94 234 direction = directionControl(DREHUNG_RECHTS, direction);
Alexander_Zuest 0:4a0b987c5c94 235 }
Alexander_Zuest 14:0caa7b93af7a 236 }
Alexander_Zuest 14:0caa7b93af7a 237 break;
Alexander_Zuest 14:0caa7b93af7a 238
Alexander_Zuest 0:4a0b987c5c94 239 case 4: // Roboter gegen links ausgerichtet
Alexander_Zuest 4:aff0722b4e50 240 if(map[X-1][Y-1] == 0){ // gegen oben abbiegen
Alexander_Zuest 5:695c5531f65e 241 actionIndex = actionIndex + 2;
Alexander_Zuest 5:695c5531f65e 242 route = (char *)realloc(route,(actionIndex+2)*sizeof(char));
Alexander_Zuest 5:695c5531f65e 243 route[actionIndex] = TURNRIGHT;
Alexander_Zuest 5:695c5531f65e 244 route[actionIndex+1] = LEER;
Alexander_Zuest 0:4a0b987c5c94 245 direction = directionControl(DREHUNG_RECHTS, direction);
Alexander_Zuest 14:0caa7b93af7a 246 }else{
Alexander_Zuest 4:aff0722b4e50 247 if(map[X][Y] == 0){ // gegen unten abbiegen
Alexander_Zuest 5:695c5531f65e 248 actionIndex = actionIndex + 2;
Alexander_Zuest 5:695c5531f65e 249 route = (char *)realloc(route,(actionIndex+2)*sizeof(char));
Alexander_Zuest 5:695c5531f65e 250 route[actionIndex] = TURNLEFT;
Alexander_Zuest 5:695c5531f65e 251 route[actionIndex+1] = LEER;
Alexander_Zuest 0:4a0b987c5c94 252 direction = directionControl(DREHUNG_LINKS, direction);
Alexander_Zuest 14:0caa7b93af7a 253 }
Alexander_Zuest 14:0caa7b93af7a 254 }
Alexander_Zuest 14:0caa7b93af7a 255 break;
Alexander_Zuest 0:4a0b987c5c94 256 }
Alexander_Zuest 14:0caa7b93af7a 257 printf(".Aktion %d\n",actionIndex/2);
Alexander_Zuest 14:0caa7b93af7a 258
Alexander_Zuest 4:aff0722b4e50 259 if (map[X][Y] == 100){
Alexander_Zuest 14:0caa7b93af7a 260 actionIndex = actionIndex + 2;
Alexander_Zuest 5:695c5531f65e 261 route = (char *)realloc(route,(actionIndex+2)*sizeof(char));
Alexander_Zuest 5:695c5531f65e 262 route[actionIndex] = ZIEL;
Alexander_Zuest 5:695c5531f65e 263 route[actionIndex+1] = ZIEL;
Alexander_Zuest 14:0caa7b93af7a 264 printf("Ziel erreicht bei Aktion %d\n",actionIndex/2);
Alexander_Zuest 0:4a0b987c5c94 265 }
Alexander_Zuest 0:4a0b987c5c94 266
Alexander_Zuest 14:0caa7b93af7a 267 printf("Array Elemente: Action %d %d-%d, Action %d %d-%d \n",(actionIndex-2)/2,route[actionIndex-2],route[actionIndex-1],(actionIndex)/2,route[actionIndex],route[actionIndex+1]);
Alexander_Zuest 14:0caa7b93af7a 268
Alexander_Zuest 14:0caa7b93af7a 269
Alexander_Zuest 0:4a0b987c5c94 270 } // Ende Kartografierungsschleife
Alexander_Zuest 14:0caa7b93af7a 271 printf("Schlaufe beendet\n");
Alexander_Zuest 14:0caa7b93af7a 272
Alexander_Zuest 14:0caa7b93af7a 273 for (e = 0; e <= actionIndex; e++){
Alexander_Zuest 14:0caa7b93af7a 274 printf("%d,",route[e]);
Alexander_Zuest 14:0caa7b93af7a 275 }
Alexander_Zuest 14:0caa7b93af7a 276
Alexander_Zuest 14:0caa7b93af7a 277 return &route[actionIndex];
Alexander_Zuest 14:0caa7b93af7a 278
Alexander_Zuest 14:0caa7b93af7a 279 }
Alexander_Zuest 0:4a0b987c5c94 280
Alexander_Zuest 0:4a0b987c5c94 281
Alexander_Zuest 0:4a0b987c5c94 282
Alexander_Zuest 0:4a0b987c5c94 283
Alexander_Zuest 0:4a0b987c5c94 284
Alexander_Zuest 0:4a0b987c5c94 285