PROGRAM zum_Schatz;   { Erklärung der Rekursion:  Prozeduren markiert}         

{ ------------------------------     Programmkopf -----------------------------------------}

   PROCEDURE wende;
   BEGIN
drehe_links;
drehe_links;
   END;
   PROCEDURE drehe_rechts;
   BEGIN
drehe_links;
wende;
   END;
    PROCEDURE gehe_um_die_Wand;
    BEGIN
vor;
IF NOT links_frei THEN gehe_um_die_Wand
ELSE
BEGIN
     drehe_links;
     vor;
     drehe_links;
END;
vor;
    END;
BEGIN                                                                              { Hauptprogramm }
   WHILE vorne_frei DO vor;
     drehe_rechts;            { drehe_rechts aufrufen }
    gehe_um_die_Wand;
    drehe_links;
     WHILE NOT Platz_belegt DO vor;
     WHILE Platz_belegt DO nimm_auf;
END.