iniciar-programa
define-nueva-instruccion construye como inicio
si junto-a-zumbador entonces inicio
    coge-zumbador;
construye;
 deja-zumbador;
 avanza;
 fin;
 fin;
 define-nueva-instruccion compara (n) como inicio
mientras orientado-al-norte o orientado-al-sur hacer inicio
si junto-a-zumbador entonces inicio
mientras junto-a-zumbador hacer inicio
coge-zumbador;
si frente-libre entonces avanza;

si no junto-a-zumbador entonces inicio
mientras no junto-a-zumbador y frente-libre hacer inicio
si junto-a-zumbador entonces coge-zumbador;
avanza;
fin;
fin;
si frente-bloqueado y orientado-al-norte y no junto-a-zumbador entonces repetir 2 veces gira-izquierda;
si frente-bloqueado y orientado-al-norte y junto-a-zumbador entonces coge-zumbador;
fin;
compara (sucede (n));
fin;
si no-junto-a-zumbador y frente-libre entonces avanza;
    si frente-bloqueado y no orientado-al-este entonces  inicio
    repetir 2 veces gira-izquierda;

            mientras no junto-a-zumbador y frente-libre y no orientado-al-este hacer inicio
            avanza;
                    si frente-bloqueado y orientado-al-norte y no junto-a-zumbador entonces inicio
                    repetir 2 veces gira-izquierda;
                    mientras frente-libre hacer avanza;
                    fin;
              si frente-bloqueado y junto-a-zumbador entonces repetir 2 veces gira-izquierda;
                         si frente-bloqueado y orientado-al-sur entonces inicio
                repetir n veces deja-zumbador;
                gira-izquierda;
                fin;
            fin;
                        fin;
           fin;
   fin;
    inicia-ejecucion
mientras frente-libre y no-orientado-al-oeste hacer inicio
    compara (0);
    si frente-libre y orientado-al-este entonces inicio
    avanza;
    gira-izquierda;
    fin;
    fin;
        si frente-bloqueado entonces inicio
        repetir 2 veces gira-izquierda;
          mientras frente-libre hacer inicio
          mientras no junto-a-zumbador y frente-libre y orientado-al-oeste hacer avanza;
          repetir 3 veces gira-izquierda;
         mientras junto-a-zumbador hacer inicio
         construye;
          repetir 2 veces gira-izquierda;
     mientras frente-libre hacer avanza;
     repetir 3 veces gira-izquierda;
   si frente-bloqueado entonces apagate;
      si frente-libre entonces avanza;
         si junto-a-zumbador entonces repetir 3 veces gira-izquierda;
         fin;
    fin;
    si frente-bloqueado entonces inicio
    repetir 3 veces gira-izquierda;
    construye;
    fin;
    fin;
    apagate;
    termina-ejecucion
finalizar-programa

