PROGRAM zum_Schatz;   { Erklärung der Rekursion:  Aufruf wende}         

{ ------------------------------     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_links;                                                                             { drehe_rechts }
drehe_links;                                                                      { wende }
drehe_links;
    gehe_um_die_Wand;   { gehe_um_die_Wand aufrufen }
    drehe_links;
     WHILE NOT Platz_belegt DO vor;
     WHILE Platz_belegt DO nimm_auf;
END.