iniciar-programa
define-nueva-instruccion gira-derecha como inicio
gira-izquierda;
gira-izquierda;
gira-izquierda;
fin;
define-nueva-instruccion coge como inicio
mientras junto-a-zumbador hacer inicio
coge-zumbador;
fin;
fin;
    inicia-ejecucion
    si frente-bloqueado y orientado-al-norte y izquierda-bloqueada entonces inicio
    gira-derecha;
    fin;
    si frente-bloqueado y derecha-bloqueada y izquierda-bloqueada entonces inicio
    coge;
    fin;
    mientras frente-libre  hacer inicio
    coge;
    avanza;
    si frente-bloqueado y derecha-libre y orientado-al-norte entonces inicio
       gira-derecha;
       coge;
       avanza;
       gira-derecha;
       coge;
       fin;
       si frente-bloqueado y orientado-al-sur y izquierda-libre entonces inicio
          gira-izquierda;
          coge;
          avanza;
          gira-izquierda;
          fin;
       si frente-bloqueado y derecha-libre y izquierda-libre entonces inicio
       gira-derecha;
       coge;
       avanza;
       gira-derecha;
       fin;
       si frente-libre y derecha-bloqueada entonces inicio
    mientras frente-libre hacer inicio
    coge;
    avanza;
    fin;
    fin;
    si frente-bloqueado y derecha-bloqueada y izquierda-libre entonces inicio
    gira-izquierda;
    gira-izquierda;
    mientras frente-libre hacer inicio
    coge;
    avanza;
    fin;
    fin;
si frente-bloqueado y orientado-al-sur y izquierda-bloqueada y derecha-libre entonces inicio
gira-derecha;
coge;
mientras frente-libre hacer inicio
avanza;
fin;
fin;
si frente-bloqueado y orientado-al-norte y derecha-bloqueada y izquierda-bloqueada entonces inicio
gira-izquierda;
gira-izquierda;
fin;
si frente-bloqueado y orientado-al-este y derecha-bloqueada y izquierda-bloqueada entonces inicio
gira-izquierda;
gira-izquierda;
fin;                 
           fin;
           mientras algun-zumbador-en-la-mochila hacer inicio
           deja-zumbador;
           fin;
       apagate;
    termina-ejecucion
finalizar-programa
