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.
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
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.
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.