Ich würde es so schreiben (ähnlich wie du):
Delphi-Quellcode:
program Insel_mit_Bergen;
procedure drehe_rechts;
begin
drehe_links;
drehe_links;
drehe_links;
end;
begin
repeat
if vorne_frei then
vor;
if rechts_frei and vorne_frei then
begin
drehe_rechts;
vor;
end;
if not rechts_frei and not vorne_frei then
drehe_links;
until platz_belegt;
end.
Edit: Wie sieht denn "drehe_links" aus, wenn es für "drehe_rechts" dreinmal aufgerufen wird. Gibts kein normales rechtsdrehen?