Niki und die Rekursionen

  • Hi ich bin neu und ich weiß nicht ob ihr mir helfen könnt?

    (Ich schreibe am Montag ne Arbeit über Niki mit Rekursionen)

    Deshalb versuche ich alles zu wiederholen!
    Aber da gibt es ein Problem:
    Das letzte Projekt Niki und die Rekursionen haben wir nicht zu ende besprochen!
    Die Aufgabe lautete wie folgt:


    1. Aufgabe :

    Niki muss den Eingang des Labyrints (Schlange) finden egal in welche Richtung er steht.

    2. Aufgabe :

    Niki sollte das Labyrint betreten, den Gegenstand ( Gegenstände ? ) suchen, dann aufnehemen und zum Eingang rekursiv zurückkehren.

    3. Aufgabe :

    Niki muss nun zum Startpunkt (Aussgangspunkt) zurückkehren.
    Dabei legt er dort auch den Gegenstand ab.(Aber das ist, glaube ich, egal)


    Bitte schaut mal in diese Editor-Texte:
    ->

    program test;

    procedure drehe_rechts;
    begin
    drehe_links;
    drehe_links;
    drehe_links;
    end;

    procedure drehe_um;
    begin
    drehe_links;
    drehe_links;
    end;

    procedure zume; {zurw }{geht totzdem zur Wad, andere procedure}
    begin
    if not vorne_frei
    then drehe_links;
    {else do vor;}
    zume;

    {end;}
    end;

    {durchs lab oder so}

    {begin

    if rechts_frei and links_frei and vorne frei;
    then begin;
    drehe_um;
    vor;
    end;}


    {Hauptprogramm}


    begin
    zume;
    end.

    2. Vorschlag:
    ->
    program LabyRekursiv;

    procedure drehe_um;
    begin;
    drehe_links;
    drehe_links;
    end;

    procedure drehe_rechts;
    begin;
    drehe_links;
    drehe_links;
    drehe_links;
    end;

    procedure zume; {rekursiv zum Eingang gehen}
    begin;
    if not rechts_frei
    then begin
    if vorne_frei
    then vor
    else drehe_links;
    zume;

    {Rekursion, die durchs Labyrinth führt}

    if rechts_frei and links_frei and vorne_frei {steht am Eingang}
    then begin
    drehe_um;
    vor;
    end;
    end;end;

    procedure zurw; {zur Wand gehen}
    begin;
    if vorne_frei
    then begin
    vor;
    zurw;
    end
    else
    begin
    drehe_links;
    zume;
    end;
    end;


    {Hauptprogramm}
    begin
    zurw;
    end.


    Aber das ganze funktioniert irgendwie nicht!?

    Bitte um Hilfe!

    Afro

  • du darfst bei dem letzten befehl (immma vor dem end kein ; setzen)!