Labyrinth erkunden in C / Backtracking

Hallo!

Ich habe ein Problem mit meinem Code für das Backtracking. Ich habe nachfolgenden Code aus dem Buch „C als erste Programmiersprache“ und muss ihn nur für mich passend abändern. Nun habe ich das Problem, dass ich das erkunden als Funktion haben möchte und da in dem Algorithmus schon eine Funktion geschrieben wird, geht das natüelich nicht so wie ich das gern hätte. Kann mir jemand weiter helfen wie ich das mache? Zudem habe ich einen variablen Startpunkt (b) von welchem aus ich das Labyinth erkunden muss. Ich hoffe meine Frage ist klar geworden. :wink:
Info zum Code:
line ist eine Zeichenkette, die die Labyrinthbeschreibung enthält

void erkundung(char *line){

    double stringlaenge,wurzel;
    int zeile,spalte,k=0,startspalte,startzeile;
    char laby[15][15];
    stringlaenge=strlen(line)-1;//Stringlänge bestimmen
    wurzel = sqrt(stringlaenge);//Wurzel aus der Stringlänge bestimmen, um zu überprüfen, ob das Labyrinth quadratisch ist.
    for(zeile=0;zeile

Zusatzinformation:

Der Code ist erst ab " /* Moegliche Richtungen beim Suchen: */" aus dem Buch. Alles was darüber steht hab ich selbst geschrieben, damit ich weiß wo sich mein Startpunkt (b) befindet.

Gruß Timo

Hallo timo222

Ganz klar ist mir deine Frage nicht geworden. Wenn ich mir den Programmquellcode anschaue geht es dir um den Aufruf einer Funktion

suche(...)

die auf der selbstähnlichen Struktur line eine Erkundung ausführt.

Wenn du dir deinen Programmquellcode anschaust, dann siehst du, dass du die Struktur line nur uminterpretierst von einer eindimensionalen Struktur auf eine zweidimensionale. Du müsstest jetzt also deinen zweidimensionalen Teilast wieder uminterpretieren in eine eindimensionale Struktur und der Funktion Erkundung(…)
zur Bearbeitung übergeben.

Wobei ich den Nutzen nicht ganz erkennen kann. Der Algorithmus suche(…) sollte soweit ich das duch code reading erkennen kann zum Ende kommen. Und die Festlegung eines Startpunktes benötigst du ja für jede Suche nur einmal.

Wenn du die Funktion Erkundung(…) rekursiv verwenden möchstest musst du laby[…][…] uminterpretieren in line

Dann kommen aber noch Randbedingungen hinzu. Zum Beispiel musst du auch den Startpunkt deines Teillabyrinths versetzen von dem aus du weiter suchst.