iniciar-programa
define-nueva-instruccion gira-derecha como inicio
gira-izquierda;
gira-izquierda;
gira-izquierda;
fin;

define-nueva-instruccion media-vuelta como inicio
gira-izquierda;
gira-izquierda;
fin;

define-nueva-instruccion pasos(x) como inicio
mientras frente-libre o derecha-libre o izquierda-libre hacer inicio
si orientado-al-oeste entonces inicio
si derecha-bloqueada entonces inicio
mientras derecha-bloqueada y frente-libre hacer avanza;
si derecha-libre entonces inicio
gira-derecha;
avanza;
pasos(sucede(x));
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
repetir x veces avanza;
gira-derecha;
mientras frente-libre hacer avanza;
deja-zumbador;
apagate;
fin;
fin
sino inicio
si derecha-libre entonces inicio
gira-derecha;
avanza;
pasos(sucede(x));
fin
sino inicio
media-vuelta;
mientras frente-libre hacer avanza;
gira-derecha;
repetir x veces avanza;
gira-derecha;
mientras frente-libre hacer avanza;
deja-zumbador;
apagate;
fin;
fin;
fin;
si orientado-al-norte entonces inicio
si frente-libre entonces inicio
avanza;
pasos(sucede(x));
fin
sino inicio
gira-izquierda;
fin;
fin;
fin;
fin;

    inicia-ejecucion
    media-vuelta;
    pasos(0);
        apagate;
    termina-ejecucion
finalizar-programa
