iniciar-programa
define-nueva-instruccion gira(n) como repetir n veces gira-izquierda;
define-nueva-instruccion deja como inicio
gira(2);
si frente-bloqueado entonces inicio
gira(2);
avanza;
deja-zumbador;
fin
sino gira(2);
mientras derecha-bloqueada hacer inicio
avanza;
deja-zumbador;
si frente-bloqueado y derecha-libre entonces inicio
gira(3);
avanza;
deja-zumbador;
fin;
fin;
gira(3);
avanza;
gira(3);
fin;
define-nueva-instruccion deja2 como inicio
gira(2);
si frente-bloqueado entonces inicio
gira(2);
avanza;
deja-zumbador;
fin
sino
gira(2);
mientras izquierda-bloqueada hacer inicio
avanza;
deja-zumbador;
si izquierda-libre y frente-bloqueado entonces inicio
gira(1);
avanza;
deja-zumbador;
fin;
fin;
gira(1);
avanza;
gira(1);
fin;
define-nueva-instruccion frente(n) como inicio
si izquierda-bloqueada y frente-libre entonces inicio
avanza;
frente(sucede(n));
fin
sino inicio
si izquierda-libre y frente-bloqueado entonces inicio
gira(1);
avanza;
frente(sucede(n));
sal-de-instruccion
fin;
si izquierda-bloqueada y frente-bloqueado entonces  inicio
gira(3);
avanza;
frente(sucede(n));
sal-de-instruccion;
fin;
gira(2);
si frente-bloqueado entonces inicio
gira(2);
avanza;
frente(sucede(n));
sal-de-instruccion;
fin
sino gira(2);
gira(2);
repetir n veces inicio
avanza;
si izquierda-libre entonces gira(1);
si derecha-libre entonces gira(3);
fin;
deja-zumbador;
repetir n veces inicio
avanza;
si derecha-libre y frente-libre  entonces inicio
gira(2);
mientras no junto-a-zumbador hacer inicio
avanza;
si izquierda-libre y no junto-a-zumbador entonces gira(1);
fin;
gira(2);
deja;
sal-de-instruccion;
fin;
si derecha-libre y frente-bloqueado entonces gira(3);
fin;
gira(2);
si frente-bloqueado entonces gira(1);
mientras no junto-a-zumbador hacer inicio
avanza;
si izquierda-libre entonces  gira(1);
fin;
deja2;
gira(2);
fin;
fin;
    inicia-ejecucion
    deja-zumbador;
    mientras frente-bloqueado hacer gira-izquierda;
    mientras frente-libre hacer avanza;
    si izquierda-libre entonces inicio
    gira(2);
    mientras frente-libre y no junto-a-zumbador hacer avanza;
    gira(2);
    coge-zumbador;
    fin
    sino inicio
    gira(2);
    mientras frente-libre y no junto-a-zumbador hacer avanza;
    coge-zumbador;
    fin;
    mientras no junto-a-zumbador hacer
    frente(0);
        apagate;
    termina-ejecucion
finalizar-programa
