// https://www.mazegenerator.net/
// L = links
// R = recht
// G = gerade
// Z = zurück
// E = Ende
String testWeg = "RZRRLLRZLRRGRGZRRE";
String testWeg1 = ""; // Labyrinth 1
String testWeg2 = ""; // Labyrinth 2
int count = 0; // aktuelle Kreuzungsnummer
String weg;
// AUFGABE: Schreiben Sie eine Funktion, welche den übergebenen Weg `pWeg` so kürzt
// das Sackgassen vermieden werden.
// Nutzen Sie folgende Regeln:
// RZG = L, RZR = G, RZL = Z, GZR = L, GZG = Z, LZR = Z
// Hinweise zum Lösen:
// - Wenden Sie die Funktion kuerzenWeg() nach jeder neuen Kreuzung an
// - Folgende String-Methoden können beim Lösen der Aufgabe hilfreich sein:
// pWeg.substring(von,bis) https://reference.arduino.cc/reference/de/language/variables/data-types/string/functions/substring/
// pWeg.replace("abc","b") https://www.arduino.cc/reference/de/language/variables/data-types/string/functions/replace/
// pWeg.indexOf("a") https://reference.arduino.cc/reference/de/language/variables/data-types/string/functions/indexof/
String kuerzenWeg(String pWeg){
//
// Ihr Code ...
//
return pWeg;
}
String addKreuzung(String weg, String test){
if (test.length() > count) {
char kreuzung = test.charAt(count);
if ( kreuzung == 'L' || kreuzung == 'R' || kreuzung == 'Z' || kreuzung == 'G' || kreuzung == 'E' ){
weg = weg + test.charAt(count);
count++;
}
else {
Serial.print("Unknown kreuzung type: ");
Serial.println(kreuzung);
}
}
return weg;
}
void anzeigenWeg(String pPath){
Serial.println(String(count) + ":> "+ pPath);
}
void setup() {
Serial.begin(9600);
Serial.println("-------------------");
delay(500);
while (!weg.endsWith("E")){
weg = addKreuzung(weg,testWeg);
anzeigenWeg(weg);
//weg = kuerzenWeg(weg); // Den Weg hier schrittweise kürzen
delay(100);
}
Serial.println(" ------------- ENDE -------------");
Serial.println("\n Gekürzter Weg:");
weg = kuerzenWeg(weg); // Den Gesamtweg kürzen
}
void loop() {
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5