iniciar-programa
define-nueva-instruccion gira(j) como repetir j veces gira-izquierda;
define-nueva-instruccion coca(l) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
coca(sucede(l));
fin sino inicio
mientras no-orientado-al-sur hacer gira(1);
mientras frente-libre hacer avanza;
mientras no orientado-al-oeste hacer gira(1);
mientras frente-libre hacer avanza;
repetir l veces deja-zumbador;
apagate;
fin;
fin;
define-nueva-instruccion secundaria(n) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
secundaria(sucede(n));
fin sino inicio
repetir n veces inicio
si frente-bloqueado entonces gira(1);
si frente-libre entonces avanza;
mientras no-junto-a-zumbador hacer inicio
si frente-libre entonces avanza;
si frente-bloqueado entonces gira(1);
fin;
fin;
fin;
fin;
define-nueva-instruccion principal(P) como inicio
si frente-libre entonces inicio
avanza;
principal(sucede(p));
fin sino inicio
si no orientado-al-sur y frente-bloqueado entonces inicio
gira(1);
principal(p);
fin;
gira(1);
repetir precede(p) veces inicio
secundaria(0);
fin;
Coca(0);
fin;
fin;
           inicia-ejecucion
 mientras no orientado-al-sur hacer gira(1);
 mientras frente-libre hacer avanza;
 gira(3);
 mientras frente-libre hacer avanza;
 gira(2);
    principal(0);
    coca(0);
           apagate;
    termina-ejecucion
finalizar-programa
