// 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() {
}