iniciar-programa
   define-nueva-instruccion compara(x) como inicio
       si no si-es-cero(x) y junto-a-zumbador entonces inicio
           coge-zumbador;
           compara(precede(x));
       fin
       sino inicio
           si si-es-cero(x) o junto-a-zumbador entonces inicio
               mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
           fin;
       fin;
   fin;
   define-nueva-instruccion orientacion(n) como inicio
       si junto-a-zumbador entonces inicio
           coge-zumbador;
           orientacion(sucede(n));
       fin
       sino inicio
       repetir n veces deja-zumbador;
       si junto-a-zumbador entonces inicio
           repetir 4 veces inicio
           si junto-a-zumbador entonces inicio
              si frente-libre entonces inicio
                   avanza;
                   compara(n);
                   si junto-a-zumbador entonces inicio
                       repetir 2 veces gira-izquierda;
                       avanza;
                       repetir 2 veces gira-izquierdA;
                   fin;
                   si no junto-a-zumbador entonces inicio
                       mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
                       repetir 2 veces gira-izquierda;
                       si frente-libre entonces avanza;
                       repetir 2 veces gira-izquierda;
                       mientras junto-a-zumbador hacer coge-zumbador;
                   fin;
               fin;
               si junto-a-zumbador entonces gira-izquierda;
           fin;
           fin;
           si junto-a-zumbador entonces apagate;
       fin;
       mientras algun-zumbador-en-la-mochila hacer deja-zumbador;
       si frente-libre entonces avanza;
       si no junto-a-zumbador entonces apagate;
       orientacion(0);
       fin;
   fin;
    inicia-ejecucion
        orientacion(0);
        apagate;
    termina-ejecucion
finalizar-programa
